【发布时间】:2015-07-14 17:45:55
【问题描述】:
我在(1 到 0..1)关系中有这两个表:
models.py
# --------------------------------------------------
class Person(db.Model):
__tablename__ = 'person'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
address = db.Column(db.String, nullable=False)
# --------------------------------------------------
class Gift(db.Model):
__tablename__ = 'gift'
id = db.Column(db.Integer, primary_key=True)
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
person = relationship("Person", uselist=False, backref="gift")
gift_idea = db.Column(db.String, nullable=False)
# --------------------------------------------------
问题:
我的一对一表的结构是否正确?我知道在 SQLAlchemy 文档中,关系代码行 (person = relationship...) 在父类中,但我需要它在子类中,可以吗?!
我的目标是显示 (gift_idea from Gift table) 和 (person_name, person_address from Person table),如果该人有 gift_idea。在我的搜索中,我发现人们使用 query.join 来获取它,并且我尝试了很多代码,但是下面的语句至少让我得到了一半的内容 需要:
views.py
a = session.query(Gift).join(Person)
您能帮我解答我的问题吗?感谢您的努力。
【问题讨论】:
标签: python-2.7 flask sqlalchemy