Python烧瓶上的外键
在db模型中获取此错误。知道有什么问题吗Python烧瓶上的外键,python,flask,Python,Flask,在db模型中获取此错误。知道有什么问题吗 InvalidRequestError: When initializing mapper Mapper|Stand|stand, expression 'Stand.item_code_name==item_id' failed to locate a name ("name 'item_id' is not defined"). If this is a class name, consider adding this relationship()
InvalidRequestError: When initializing mapper Mapper|Stand|stand, expression 'Stand.item_code_name==item_id' failed to locate a name ("name 'item_id' is not defined"). If this is a class name, consider adding this relationship() to the <class 'app.models.Stand'> class after both dependent classes have been defined.
class Stand(db.Model):
stand_id = db.Column(db.String(10), primary_key = True)
stand_name = db.Column(db.String(24), index = True, unique = True)
item_code_name =db.Column(db.String, db.ForeignKey('item_codes.item_id'))
item_codes= db.relationship('Item_codes', primaryjoin = "Stand.item_code_name==item_id")
class Item_codes(db.Model):
item_id = db.Column(db.String(10), primary_key = True)
item_name = db.Column(db.String(100), index = True, unique = True)
combi = db.Column(db.String(140))
InvalidRequestError:初始化映射器映射器| Stand | Stand时,表达式“Stand.item_code_name==item_id”找不到名称(“名称”item_id“未定义”)。如果这是类名,那么在定义了两个依赖类之后,考虑将此关系()添加到类中。
班级展位(db.Model):
stand\u id=db.Column(db.String(10),主键=True)
stand_name=db.Column(db.String(24),index=True,unique=True)
item\u code\u name=db.Column(db.String,db.ForeignKey('item\u code.item\u id'))
item\u codes=db.relationship('item\u codes',primaryjoin=“Stand.item\u code\u name==item\u id”)
类别项目代码(数据库模型):
item\u id=db.Column(db.String(10),主键=True)
item_name=db.Column(db.String(100),index=True,unique=True)
combi=db.Column(db.String(140))
映射程序需要知道要加入哪个模型
class Stand(db.Model):
stand_id = db.Column(db.String(10), primary_key=True)
stand_name = db.Column(db.String(24), index=True, unique=True)
item_code_name = db.Column(db.String, db.ForeignKey('item_codes.item_id'))
item_codes = db.relationship('Item_codes', primaryjoin="Stand.item_code_name==Item_codes.item_id")
我还建议调用字段
Stand.item\u code\u id
(或类似的内容)。使用\u name
我希望它加入Item\u code。Item\u name
在声明primaryjoin时,您还必须提到模型。试试这个-primaryjoin=“Stand.item\u code\u name==item\u code.item\u id”
。