问题描述
我当前正在编写视图以列出我拥有的对象。但是我想要一些自定义查询参数,以便可以在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 (将#修改为@)