django基于类的视图的不同输入和输出序列化器

问题描述

我当前正在编写视图以列出我拥有的对象。但是我想要一些自定义查询参数,以便可以在get_queryset()函数中过滤查询集。因此,我为查询参数创建了一个序列化器,如下所示:

class IceCreamFilterSerializer(serializers.Serializer):
    start = serializers.DateField()
    end = seralizers.DateField()

然后针对我使用method_decorator将视图参数添加到我的视图的视图:

@method_decorator(name='list',decorator=swagger_auto_schema(
    manual_parameters=[
        openapi.Parameter('start',openapi.IN_QUERY,type=openapi.TYPE_STRING),openapi.Parameter('end',type=openapi.TYPE_STRING)
    ]
))
class IceCream(ListModelMixin,GenericViewSet):
    serializer_class = IceCreamSerializer

    def get_queryset(self):
        filter_data = IceCreamFilterSerializer(data=self.request.query_params)
        start = filter_data['start']
        end = filter_data['end']
        qs = IceCream.objects.filter(created__range=[start,end])
        return qs

因此,对于查询参数和输出数据,我有两个不同的序列化器。我需要区分输入和输出串行器,但是我对此功能有多种看法。因此,我想创建一个管理序列化程序的Mixin,以便可以在我的视图中继承它。

但是我不确定在Mixin中写什么。是否重写get_serializer_class?我已经读过此SO thread,但我认为这不是我想要的。你们能指出我正确的方向吗?我对此Mixin有点陌生。任何帮助将不胜感激,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)