只是一个非关键问题在试图在文档中找到答案无济于事后困扰了我。
class Book(models.Model)
authors = ManyToManyField(Author)
homer = Author.objects.get(pk=1)
iliad = Book.objects.get(pk=2)
iliad.authors.filter(pk=homer.pk).exists()
Book.objects.filter(name='Iliad', authors__in=homer).exists()
我相信最后两个断言将测试荷马是否是《伊利亚特》的作者。但我有点不喜欢 (pk=homer.pk) 部分,我想知道是否有任何构造可以让我测试一个对象(假设我们已经从“get”中获得它)是否存在于查询集中?
(homer in iliad.authors)
虽然上面的表达式也可以工作,并且可以说更pythonic,但它可能会从数据库中检索到不必要的太多作者。