这必然是一个重复的问题,但我找不到任何其他问题。我正在尝试获取有投诉的照片列表。我不能简单地投诉并处理相关照片 - 我需要一组照片查询。
这应该有效,但似乎不对:
Photo.objects.filter(complaint__id__gte=0)
这似乎不是最有效的方式:
Photo.objects.annotate(Count('complaint')).exclude(complaint__count=0)
有更好的方法吗?
答案 0 :(得分:62)
怎么样......
Photo.objects.filter(complaint__isnull=False)
答案 1 :(得分:7)
我不确定哪种变体是最好的,但也可以。
Photo.objects.exclude(complaint=None)
此处生成的SQL查询与.filter(complaint__isnull=False)
的情况不同,但感觉相同。