rest_framework原生filter使用
在view中可以通过重载get_queryset
方法实现较为复杂的过滤,但是却比较麻烦,可以通过django_filters
更好的实现
# settings.py
REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend', )
}
# app/views.py
class GoodsViewSet(ListModelMixin, viewsets.GenericViewSet):
queryset = Goods.objects.all()
serializer_class = GoodsModelSerializer
pagination_class = CustomPagination
filter_backends = (DjangoFilterBackend, )
# filter_fields中的字段和model中保持一致
filter_fields