所以我在Topic
模型之间有一个父子关系,其关系由此类代表:
class ParentChildRelation(db.Model):
__tablename__ = 'parent_child_relation'
id = db.Column(db.Integer, primary_key=True)
child_topic_id = db.Column(db.Integer, db.ForeignKey('topic.id'), nullable=False)
parent_topic_id = db.Column(db.Integer, db.ForeignKey('topic.id'), nullable=False)
主题定义如下:
class Topic(db.Model):
__tablename__ = 'topic'
id = db.Column(db.Integer, primary_key=True)
parent = db.relationship(
'Topic',
secondary='parent_child_relation',
primaryjoin='Topic.id == ParentChildRelation.child_topic_id',
secondaryjoin='Topic.id == ParentChildRelation.parent_topic_id'
)
我希望parent
暂时成为一对一关系(我稍后可能会更改),但它会以{{ 1}}。是否有一种简单的方法可以说明InstrumentedList
应该是一对一的关系,以便它直接链接到parent
模型而不是Topic
?
答案 0 :(得分:0)
事实证明我之前找到了正确的答案,但我一定有错字:/。添加uselist = False就可以了。
parent = db.relationship(
'Topic',
secondary='parent_child_relation',
primaryjoin='Topic.id == ParentChildRelation.child_topic_id',
secondaryjoin='Topic.id == ParentChildRelation.parent_topic_id',
uselist=False
)