说,我有以下两种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