在Django中,如果我有一个模型,例如与包含用户的(Django Auth)组相关的OneToOne建筑物,我怎样才能找到用户所属的所有建筑物(也许这些是用户工作的所有建筑物)在)?建筑物与集团是一对一的,因此建筑物具有称为“组”的组外键字段。
我试过
Building.objects.filter(group__contains=user)
Building.objects.filter(group_user_set__contains=user)
当应该有比赛时我没有比赛。
答案 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