无法在flask-sqlalchemy中检索具有多个单词的模型

时间:2015-09-23 22:36:47

标签: python flask sqlalchemy flask-sqlalchemy

如何在flask-sqlalchemy中检索具有多个单词的模型?以下引发错误:

class Child(Model):
    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey('user.id'))
    parent_one_id = Column(Integer, ForeignKey('parent_one.id'))

class ParentOne(Model):
    id = Column(Integer, primary_key=True)
    children = relationship('Child', backref='child.id', lazy='dynamic')

查看数据库,我看到parent_one作为各个模型的表名。

尝试获得父母:

c = Child.query.filter_by(id=1).first()
print c.user.id    # Works
print c.parent_one.id    # Fails

我明白了:

AttributeError: 'Child' object has no attribute 'parent_one'

1 个答案:

答案 0 :(得分:0)

它没有parent_one属性,因为您没有做任何事情来导致创建一个属性。添加从Child到名为ParentOne的{​​{1}}的关系,或者使用名为parent_one的{​​{1}}进行相反的操作。

backref

另请注意,您定义的关系具有无效的反射名称(parent_one不是有效的Python变量名称)。您似乎已将# in Child parent_one = relationship('ParentOne', backref='children') # or in ParentOne children = relationship(Child, backref='parent_one') child.id混淆。