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