class Country(db.Model):
__tablename__ = 'countries'
id = db.Column(db.Integer, primary_key=True)
code = db.Column(db.Integer)
name_en = db.Column(db.String(100))
user_country = db.relationship('User', backref='country')
company_country = db.relationship('Company', backref='country')
在此示例中,我将覆盖表名称。那么,backref应该是什么呢?
tablename
或类名?或者可以是其他任何东西?从文档:
backref是一种在xxxxx类上声明新属性的简单方法
那么,
backref
的名称只是一个一般性的描述?如果我有两个使用国家表的表,则需要创建两个关系,例如在我的示例中?该过程是每个引用在另一个表中的一种关系?
最佳答案
您可以参考此示例。
class Parent(Base):
__tablename__ = 'parent'
id = Column(Integer, primary_key=True)
children = relationship("Child", backref="parent")
class Child(Base):
__tablename__ = 'child'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('parent.id'))
将孩子存放在父母中
获取父对象。
p = Parent.query.get(1)
使用backref存储在子对象中
c = Child(parent=p)
db.session.add(c)
db.session.commit()
要通过子对象访问父母,您将遵循以下步骤。
制作对象。
child = Child ()
通过backref访问。
child.parent.
关于sql - 定义backref参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26350766/