DRF-如何返回响应中不包含在模型中的字段



I have view:

class SomeView(APIView):
def get(self,request):
serializer = serializers.SomeViewSerializer
return Response({'result_url': ???})

和序列化器:

class SomeViewSerializer(serializers.Serializer):
url = serializers.SerializerMethodField()
def get_url(self):
res_id = genetare_url(self.id)
return res_id

在这种情况下url不是任何模型的一部分,但我想只返回这个(get_url的结果)在响应中,但我不知道如何在上面的视图中编写它。任何帮助将不胜感激,谢谢你

您可以简单地调用序列化器的方法。

class SomeView(APIView):
def get(self, request):
serializer = serializers.SomeViewSerializer()
return Response({'result_url': serializer.get_url()})

试试这个。添加obj参数到methodfieldget_url(self, obj)

class SomeViewSerializer(serializers.Serializer):
url = serializers.SerializerMethodField()
def get_url(self, obj):
res_id = genetare_url(self.id)
return res_id

并将任何数据传递给序列化器

ex:SomeViewSerializer(request.data)如下:

class SomeView(APIView):
def get(self, request, format=None):
serializer = SomeViewSerializer(request.data)
return Response(serializer.data)

这可能对你有帮助。

相关内容

  • 没有找到相关文章

最新更新