[英]How to filter Django ManyToManyField based upon exact queryset?
我們如何根據ManyToManyField
中的確切值過濾 django model 實例。 考慮以下示例:假設我們有兩個模型:
class Author(models.Model):
name=models.CharField(max_length=200)
class Book(models.Model):
authors=models.ManyToManyField(Author)
我想過濾所有只有給定 id 的給定作者的書。 如果我希望按作者 ID 1, 2, 3
過濾查詢集。 我試過這樣做:
Book.objects.filter(authors__id__in=[1,2,3])
這不起作用,因為它為我提供了具有這些 id 的作者以及其他作者的書籍列表。 如何過濾書籍,使作者僅在這些 ID 中
您可以在ManyToManyField related_name
字段中傳遞一個related_name,然后在過濾器查詢中使用它。
Class Book(models.Model):
authors = models.ManyToManyField(Author, related_name='authors')
並嘗試運行查詢:
Book.objects.filter(authors__id__in=[1,2,3])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.