說,我有以下兩種Django模型:上查詢集結合使用多種過濾器和Django過濾
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
name = models.CharField(max_length=300)
pages = models.IntegerField()
author = models.ForeignKey(Author)
隨着django-filter
,我怎麼能寫一個FilterSet
,可以讓我來過濾有點像:
Author.objects.filter(
(Q(book__name__contains='How') & Q(book__pages=100)) |
(Q(book__name__contains='Why') & Q(book__pages=50))
)
也就是說,我想要一組過濾器字段,這些過濾器字段都應用於相關模型並可以合併。在我的情況下,該集包含更多的字段,所以自定義MultiValueField
可能不是真的適用。
是否有任何標準的方式來解決這個使用django-filter
,或者我應該在視圖中實現我自己的過濾邏輯?
會是什麼請求查詢字符串看起來像這裏?你如何區分你想過濾的兩組'Q'對象? – Sherpa
'?book_name_1 = How&book_pages_2 = 100&book_name_2 = why&book_pages_2 = 50' – janoliver