型号:
class Book:
title = CharField()
author = ForeignKey(Person, related_name='books')
class Person:
name = CharField()
如何选择拥有某套书籍的人?
例如,选择所有具有('A','B','C')作为书籍(可能更多)的人,即子集。
答案 0 :(得分:1)
如果您想获得特定帐套的作者集:
Person.object.filter(books__in=Book.objects.filter(name__in=['A','B','C']))
或更短:
Person.object.filter(books__name__in=['A','B','C']))
答案 1 :(得分:1)
尝试使用intersection
:
queryset = Person.objects.filter(books__title='A').intersection(Person.objects.filter(books__title='B'), Person.objects.filter(books__title='C'))
如果你使用的是早于1.11的Django,那么:
queryset = Person.objects.filter(books__title='A') & Person.objects.filter(books__title='B') & Person.objects.filter(books__title='C')