Django过滤与OneToOne关系到用户组的项目

时间:2013-01-26 12:53:18

标签: sql django

在Django中,如果我有一个模型,例如与包含用户的(Django Auth)组相关的OneToOne建筑物,我怎样才能找到用户所属的所有建筑物(也许这些是用户工作的所有建筑物)在)?建筑物与集团是一对一的,因此建筑物具有称为“组”的组外键字段。

我试过

Building.objects.filter(group__contains=user)
Building.objects.filter(group_user_set__contains=user)

当应该有比赛时我没有比赛。

2 个答案:

答案 0 :(得分:3)

使用contains不是正确的选择,因为它搜索不在集合内的字段(字符串)内的表达式。尝试使用:

Buildings.objects.filter(group__user=user)

答案 1 :(得分:0)

如果这是一对一的关系,为什么不直接归还这些组?

result = []
u = User.objects.get(your user here)
for group in u.groups.all():
    result.append(group.whateverYourForeignKeyFieldIsCalled)
return result