【问题标题】:Django restframework serializer response custom messageDjango rest 框架序列化器响应自定义消息
【发布时间】:2017-01-13 05:15:17
【问题描述】:

我正在尝试覆盖序列化程序的响应消息(返回数据)。下面是我的示例代码。

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

在这里,当我尝试发布数据时,序列化程序会以这样的 json 格式返回响应

{
    'id': 2,
    'name': 'myname',
    'email': 'mayname@example.com',
    'phone': 8569874587,
}

但如果帖子成功,我想返回这样的自定义 json 响应。

{
    'success' : 'data posted successfully',
}

伙计们,我该如何为自定义消息覆盖它,请帮助我,它会非常完整,提前致谢。

【问题讨论】:

    标签: django django-rest-framework response message


    【解决方案1】:

    覆盖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)
    

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 2020-03-18
      相关资源
      最近更新 更多