假设我有一个动物的查询集,我想编写一个查询,确定另一个模型上的多个字段是否至少有一个与动物查询集相同的对象。如何实现这一目标?
farm_animals = Animals.objects.filter(name__in=["Dog", "Cow", "Horse"])
print farm_animals # [<Animal: Dog>, <Animal: Cow>, <Animal: Horse>]
# Returns all people who have at least one farm animal.
people_with_a_farm_animal = People.objects.filter(???)
这看起来应该很容易,但我很难找到一种有效的方法来做到这一点。提前感谢您的帮助。
答案 0 :(得分:0)
正如danihp所指出的,如果People
对象有owned_animals
字段,请尝试people_with_a_farm_animal = People.objects.filter( owned_animals__in=farm_animals).distinct()
。