为什么我不能在SQLAlchemy中对我有很多关系运行查询?

时间:2014-01-11 14:08:57

标签: python sqlalchemy

我有一个名为Group的表格,其中包含许多Persongroups_people。这是Group表的一部分:

class Group:
...
...
  people = db.relationship('Person', secondary=groups_people,
    backref=db.backref('groups', lazy='dynamic'))

这是我的groups_people表:

groups_people = db.Table('groups_people',
db.Column('group_id', db.Integer(), db.ForeignKey('group.id')),
db.Column('person_id',db.Integer(), db.ForeignKey('person.id')))

我的class Person表中没有列出任何组关系。

这一切都有效,但当我致电group.people时,它会返回InstrumentedList。我想对people的所有group运行查询。我不能。

如何针对people的{​​{1}}运行过滤查询?或者:如何让它返回我可以查询的对象?

1 个答案:

答案 0 :(得分:2)

您的背光标记为lazy='dynamic',您需要以这种方式标记关系。

class Group(db.Model):
    ...
    people = db.relationship(Person, lambda: groups_people, lazy='dynamic',
        backref=db.backref('groups', lazy='dynamic'))
    ...