Django restframework 序列化程序响应自定义消息
Django restframework serializer response custom message
我正在尝试覆盖序列化程序的响应消息(return 数据)。下面是我的示例代码。
models.py
from django.db import models
class MyModel(models.Model):
name = models.charField()
email = models.EmailField()
phone = models.charField()
serializer.py
from rest_framework import serializers
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('id', 'name', 'email', 'phone')
def validate(self, data):
'''
Some validation here
'''
return data
views.py
from rest_framework import generics
class MyModelList(generics.ListCreateAPIView):
queryset = MyModel.objects.all().order_by('-id')
serializer_class = MyModelSerializer
在这里,当我尝试 post 数据时,序列化程序 return 响应 json 格式如下
{
'id': 2,
'name': 'myname',
'email': 'mayname@example.com',
'phone': 8569874587,
}
但如果 post 成功,我想 return 自定义 json 响应。
{
'success' : 'data posted successfully',
}
伙计们,我怎样才能为自定义消息覆盖这个,请帮助我,这将是非常棒的,提前致谢。
覆盖ListCreateAPIView
的create方法
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(
{"Success": "Data posted successfully"},
status=status.HTTP_201_CREATED,
headers=headers)
我正在尝试覆盖序列化程序的响应消息(return 数据)。下面是我的示例代码。
models.py
from django.db import models
class MyModel(models.Model):
name = models.charField()
email = models.EmailField()
phone = models.charField()
serializer.py
from rest_framework import serializers
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('id', 'name', 'email', 'phone')
def validate(self, data):
'''
Some validation here
'''
return data
views.py
from rest_framework import generics
class MyModelList(generics.ListCreateAPIView):
queryset = MyModel.objects.all().order_by('-id')
serializer_class = MyModelSerializer
在这里,当我尝试 post 数据时,序列化程序 return 响应 json 格式如下
{
'id': 2,
'name': 'myname',
'email': 'mayname@example.com',
'phone': 8569874587,
}
但如果 post 成功,我想 return 自定义 json 响应。
{
'success' : 'data posted successfully',
}
伙计们,我怎样才能为自定义消息覆盖这个,请帮助我,这将是非常棒的,提前致谢。
覆盖ListCreateAPIView
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(
{"Success": "Data posted successfully"},
status=status.HTTP_201_CREATED,
headers=headers)