if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
如何向 serializer.data dict 添加一个额外的字段(非模型字段)?我想在发送响应之前添加 ("status": "available") 。我试过这个 -
if serializer.is_valid():
serializer.save()
## This one doesn't work as serializer.data is of the type 'ReturnDict'
serializer.data.append(("status","available"))
## OR
serializer.data["status"] = "available"
return Response(serializer.data, status=status.HTTP_201_CREATED)
我还想在发送响应之前修改 serializer.data 的字段名称。有什么办法吗?
请您参考如下方法:
您可以像这样向序列化程序添加一个额外的字段:
class MySerializer(serializers.ModelSerializer)
status = serializers.SerializerMethodField('get_status')
class Meta:
model = MyModel
read_only_fields = ('status',)
def get_status(self, obj):
""" Get the current objects status """
if obj.available == 1:
return 'available'
else:
return 'not available'
更改字段名称的一种方法是使用中间件类来格式化响应。如果我必须为整个 API 设置响应格式,我会这样做。
