0
我寫了一個小工具,可以從書面規範中創建SQLAlchemy代碼。該工具可以像這樣創建代碼:如何「解析」SQLAlchemy查詢結果中的外鍵?
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
address_id = db.Column(db.Integer, db.ForeignKey('address.id'))
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
我可以插入新記錄,我可以查詢他們,就像一個魅力,但我真的想不必手動查找的地址人。
我希望能夠通過Person對象訪問屬於特定人員的地址。如果我正確理解示例,我需要這樣做(基於http://flask-sqlalchemy.pocoo.org/2.1/models/#one-to-many-relationships的示例)?
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
address = 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所以我可以有一個人的地址嗎?這是不可能直接從人做?
此外,爲此創建代碼要複雜得多,所以我真的很想避免這種情況。
我知道,這就是爲什麼我問。沒有1:1的例子可以找到,1:N例子都有(對我來說)多餘的backref事情。我想知道如何做1:1的最簡單的方法,所以我不必在有人的時候對地址進行第二次查詢。 – ramdyne