5

在 Django 中,如果我有一个模型,例如与包含用户的(Django Auth)组相关的 OneToOne 的建筑物,我如何找到用户所属的所有建筑物(也许这些是用户工作的所有建筑物)?Building 与 Group 是一对一的,因此 building 有一个名为“group”的组外键字段。

我试过了

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

当应该有比赛时,我没有得到比赛。

4

2 回答 2

7

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

Buildings.objects.filter(group__user=user)
于 2013-01-26T13:08:03.107 回答
0

如果是一对一的关系,为什么不直接返回组呢?

result = []
u = User.objects.get(your user here)
for group in u.groups.all():
    result.append(group.whateverYourForeignKeyFieldIsCalled)
return result
于 2013-01-26T12:58:39.307 回答