为什么我的链式Django查询集不起作用?

时间:2015-02-21 21:30:30

标签: django django-queryset

latest_entries = Entry.objects.filter(
    zipcode=request.user.my_profile.nearbyzips1
).filter(
    zipcode=request.user.my_profile.nearbyzips2
).filter(
    zipcode=request.user.my_profile.nearbyzips3
)

这似乎不会返回任何Entry个对象,即使它应该。

注意:如果我要删除所有链接,只需保留初始nearbyzips1过滤器,它将返回与该zipcode匹配的所有Entry个对象。所以这告诉我,我的链接破坏了一些东西。

我做错了什么?

我没有使用任何m2m或外键。

1 个答案:

答案 0 :(得分:4)

我猜你需要查找包含给定zipcodes之一的所有条目。正确的方法是:

Entry.objects.filter(zipcode__in=[
    request.user.my_profile.nearbyzips1,
    request.user.my_profile.nearbyzips2,
    request.user.my_profile.nearbyzips3
])

此查询返回具有zipcode代码的所有条目之一的数组值。您提供的查询只是尝试同时查找zipcode等于所有给定zipcodes的所有条目。所以没有任何回报是正常的。