Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python烧瓶上的外键_Python_Flask - Fatal编程技术网

Python烧瓶上的外键

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()

在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() 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”