は彼らのdocsの例に見られるように、指定したクラスの下に新しいプロパティを宣言することができます:フラスコSQLAlchemyの後方参照の機能と後方参照パラメータ
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
addresses = db.relationship('Address', backref='person', lazy='dynamic')
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
しかし、その後、backref
機能もあります。この場合は
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
addresses = db.relationship('Address',
backref=db.backref('person', lazy='joined'),
lazy='dynamic')
は、特に複数ので、backref
パラメータに渡されたbackref
機能の役割を何の定義は? backref='person'
とどのように違うのですか?ドキュメントから
backrefオブジェクトを使用して、後方参照関係の動作/構成を変更できます。あなたのケースでは 'Address.person'がローディングに参加しました。文字列だけを渡すと、デフォルト値が得られます。 –
@IljaEverilä 'lazy = 'dynamic''もローディング設定を変更しませんか?私はこれが私を混乱させていると思う。 – kentwait
はい。キーワード引数が渡される関係の設定が変更されます。あなたの場合は 'User.addresses'です。 –