在过滤器.py,我定义了一个CustomFilter
,它具有ComboSortFilter
和IntegerListFilter
类型的值。在
在视图.py,我定义了一个包含filter_class = CustomFilter
的视图集,这对于使用url中的查询字符串参数的GET
请求非常有用,这些请求使用自定义筛选进行处理。在
我还需要支持POST
请求,因为有些筛选条件太长,无法放入URL中。在
所以我在视图集中添加了一个post
方法,从request.DATA
中提取参数,然后过滤、序列化和分页。。。在
在我的ViewSet的post方法中视图.py公司名称:
queryset = MyModel.objects.filter(**filter_args)
page = self.paginate_queryset(queryset)
serializer = self.get_pagination_serializer(page)
return Response(serializer.data)
对于简单的过滤,上面的工作很好。但是,我在我的CustomFilter
中定义的过滤使用ComboSortFilter
和IntegerListFilter
来过滤字段,这有点复杂:
在过滤器.py公司名称:
^{pr2}$有没有办法从ViewSet的post方法中引用CustomFilter
FilterSet或我的两个自定义过滤器中的任何一个?我不想在views.py
中复制所有这些过滤代码才能使其工作。在
关于Django-rest-framework:filters的所有文档都只包含一些简单的示例,要么在视图中滚动,要么使用过滤器类。有没有一种方法可以直接从视图调用过滤器类,重写它通常从查询字符串中获取的值?在
弄明白了:
相关问题 更多 >
编程相关推荐