NameError - FLASK SQLALCHEMY - 重用数据库模型,即列
NameError - FLASK SQLACHEMY - Reusing Database Models i.e. Columns
我正在尝试重用数据库 table 类/模型
我的模型如下restmodels.py
# attributes master - holds the main product attributes
class AttributesMst(db.Model):
__tablename__ = 'oc_attribute'
attribute_id = db.Column(db.INT, primary_key=True, autoincrement=True, nullable=False)
attribute_group_id = AttributesGroups.attribute_group_id
sort_order = db.Column(db.INT, nullable=False)
#Attribute Groups
class AttributesGroups(db.Model):
__tablename__ = 'oc_attribute_group'
attribute_group_id = db.Column(db.INT, primary_key=True, autoincrement=True, nullable=False)
sort_order = db.Column(db.INT, nullable=False)
# attribute descriptions and language
class AttributesDescrptn(db.Model):
__tablename__ = 'oc_attribute_description'
attribute_id = AttributesMst.attribute_id
language_id = db.Column(db.INT, primary_key=True, autoincrement=False, nullable=False)
name = db.Column(db.VARCHAR(64), nullable=False)
当我运行代码时,我得到以下回溯。
Traceback (most recent call last):
File "/home/seroney/PycharmProjects/TestProject/Addresses/restmodels.py", line 108, in <module>
class AttributesMst(db.Model):
File "/home/seroney/PycharmProjects/TestProject/Addresses/restmodels.py", line 111, in AttributesMst
attribute_group_id = AttributesGroups.attribute_group_id
NameError: name 'AttributesGroups' is not defined
请注意这些类在同一个文件中。问候。
我想要实现的是像在 Play Framework 上一样重用 table 列。
引用后定义AttributesGroups
。这就是为什么你得到 NameError
。但是,最后,我认为您正在尝试创建一个外键。 (不过,使用新的 Play Framework,我可能是错的。)
要使用 SQLAlchemy 创建外键,请替换
attribute_group_id = AttributesGroups.attribute_group_id
与
attribute_group_id = db.Column(db.Integer, db.ForeignKey('oc_attribute_groups.attribute_group_id'))
我正在尝试重用数据库 table 类/模型
我的模型如下restmodels.py
# attributes master - holds the main product attributes
class AttributesMst(db.Model):
__tablename__ = 'oc_attribute'
attribute_id = db.Column(db.INT, primary_key=True, autoincrement=True, nullable=False)
attribute_group_id = AttributesGroups.attribute_group_id
sort_order = db.Column(db.INT, nullable=False)
#Attribute Groups
class AttributesGroups(db.Model):
__tablename__ = 'oc_attribute_group'
attribute_group_id = db.Column(db.INT, primary_key=True, autoincrement=True, nullable=False)
sort_order = db.Column(db.INT, nullable=False)
# attribute descriptions and language
class AttributesDescrptn(db.Model):
__tablename__ = 'oc_attribute_description'
attribute_id = AttributesMst.attribute_id
language_id = db.Column(db.INT, primary_key=True, autoincrement=False, nullable=False)
name = db.Column(db.VARCHAR(64), nullable=False)
当我运行代码时,我得到以下回溯。
Traceback (most recent call last):
File "/home/seroney/PycharmProjects/TestProject/Addresses/restmodels.py", line 108, in <module>
class AttributesMst(db.Model):
File "/home/seroney/PycharmProjects/TestProject/Addresses/restmodels.py", line 111, in AttributesMst
attribute_group_id = AttributesGroups.attribute_group_id
NameError: name 'AttributesGroups' is not defined
请注意这些类在同一个文件中。问候。
我想要实现的是像在 Play Framework 上一样重用 table 列。
引用后定义AttributesGroups
。这就是为什么你得到 NameError
。但是,最后,我认为您正在尝试创建一个外键。 (不过,使用新的 Play Framework,我可能是错的。)
要使用 SQLAlchemy 创建外键,请替换
attribute_group_id = AttributesGroups.attribute_group_id
与
attribute_group_id = db.Column(db.Integer, db.ForeignKey('oc_attribute_groups.attribute_group_id'))