我正在使用Flask与SQLAlchemy和Declarative,但我是新手。我有一个父母和一个孩子 - Tabele / Class。
在我的数据库中有成千上万的父母。到目前为止一切正常,但这两个表并没有为用户提供良好的链接。
我想在父级中提供一个链接来创建(并最终还会更新)一个孩子,而无需用户再次找到父级ID很长的名单。
我已经研究了documentation of Declarative,但没有发现如何使其发挥作用。
到目前为止我的代码是:
class Child(Base):
__tablename__ = 'child'
id = Column(Integer, ForeignKey('parent.id'), primary_key=True)
和
class Parent(Base):
__tablename__ = 'parent'
id = Column(Integer, primary_key=True)
child = relationship('Child', backref='child')
答案 0 :(得分:1)
当我正确理解您的问题时,您可以执行以下操作:
在子类中定义一个字段:
criterias = relationship('Criteria', secondary=criteria_controls, backref=backref('criteria', lazy='dynamic'))
有关更多帮助,请参阅Backref documentation
如果这有帮助,请告诉我。 也许您可以提供您的亲子关系示例?
欢呼声
编辑:
我现在看到我的回答并没有完全找到你。也许它比你想象的要简单。 我仍然不太确定你想要实现什么,但你可以通过这样做来创建一个新的孩子:
p = Parent()
p.child = Child()
db.add(p)
db.commit()
您应该能够通过子字段直接访问子对象。
验证试试这个:
print(type(p.child))
希望这会有所帮助。