我正在使用谷歌应用引擎,并且无法编写查询来过滤ReferenceProperties.
例如.
class Group(db.Model): name = db.StringProperty(required=True) creator = db.ReferenceProperty(User) class GroupMember(db.Model): group = db.ReferenceProperty(Group) user = db.ReferenceProperty(User)
我尝试过写这样的东西:
members = models.GroupMember.all().filter('group.name =', group_name)
和其他各种不起作用的东西.希望有人能给我一个正确方向的刺激......
如果您的组具有唯一名称,则"group.name"是组实体的唯一标识符.
这意味着你可以写:
members = models.GroupMember.all().filter( "group =",model.Group.gql("WHERE name=:1", group_name).get() )
虽然你只需要这样做,但如果你还没有将组实体放在堆栈的某个地方.
谷歌关于多对多与appengine的文章就在这里.