2017-01-13 14 views
1

我試圖重寫串行的響應消息(返回數據)。以下是我的示例代碼。Django的restframework串行響應自定義消息

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 

在這裏,當我嘗試發佈數據,串行返回這樣

{ 
    'id': 2, 
    'name': 'myname', 
    'email': '[email protected]', 
    'phone': 8569874587, 
} 

JSON格式的響應,但我想回到這樣的自定義JSON響應,如果該職位是成功的。

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

夥計們如何覆蓋此自定義消息,請幫助我,這將是非常非常充分,在此先感謝。

回答

2

覆蓋的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) 
+0

感謝create方法很多......它工作得很好。 –