【发布时间】:2018-07-31 14:39:01
【问题描述】:
我想为我的序列化程序的 1 个成功和失败创建自定义响应。现在我只有成功的创建功能
我希望输出显示为默认输出 + 我的其他 2 条消息。
提示消息和状态。
例如json数据的输出:如果成功:
promptmsg = "您已成功创建 xxx"
状态 = '200'
如果失败
promptmsg = "你创建 xxx 失败"
状态 = '400'
这是我的观点的代码
class ScheduleViewSet(viewsets.ModelViewSet):
permission_classes = [AllowAny]
queryset = Schedule.objects.all()
serializer_class = ScheduleSerializer
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
if not serializer.is_valid(raise_exception=False):
return Response({"promptmsg": "You have failed to register an account",
"status": "400"}, status=HTTP_400_BAD_REQUEST)
response = super(ScheduleViewSet, self).create(request, *args, **kwargs)
response.data['promptmsg'] = 'You have successfully create a book'
response.data['statuscode'] = '200'
return response
def update(self, request, *args, **kwargs):
partial = kwargs.pop('partial', False)
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data, partial=partial)
if not serializer.is_valid(raise_exception=False):
return Response({"promptmsg": "You have failed to register an account",
"statuscode": "400"}, status=HTTP_400_BAD_REQUEST)
# serializer.is_valid(raise_exception=True)
# self.perform_update(serializer)
response = super(ScheduleViewSet, self).update(request, *args, **kwargs)
response.data['promptmsg'] = 'You have successfully create a book'
response.data['statuscode'] = '200'
return response
如你所见,如果失败,它只会返回 promptmsg 和 status。
如果成功会显示默认响应+promptmsg+状态。
那我怎么改呢?
【问题讨论】:
标签: django django-rest-framework