在Django中,如果我有一个模型,比如一个与包含用户的(Django Auth)组相关的建筑物( OneToOne ),我如何找到用户所属的所有建筑物(也许这些建筑物就是用户工作的所有建筑物)?构建与Group是一对一的,因此构建有一个称为“group”的组外键字段。
我试过了
Building.objects.filter(group__contains=user)
Building.objects.filter(group_user_set__contains=user)
我没有得到匹配项,而应该有匹配项。
发布于 2013-01-26 21:08:03
使用contains
不是正确的选择,因为它搜索字段(字符串)中的表达式,而不是集合中的表达式。尝试使用:
Buildings.objects.filter(group__user=user)
发布于 2013-01-26 20:58:39
如果是一对一的关系,为什么不直接返回组呢?
result = []
u = User.objects.get(your user here)
for group in u.groups.all():
result.append(group.whateverYourForeignKeyFieldIsCalled)
return result
https://stackoverflow.com/questions/14537113
复制相似问题