Как вернуть пользовательский JSON ответ в UpdateAPIView? - PullRequest
4 голосов
/ 06 января 2020

Я пытался вернуть пользовательское сообщение после того, как пользователь обновил данные после отправки. Как я могу сделать это в UpdateApiView?

class DetailUpdateView(generics.UpdateAPIView):
    permission_classes = (permissions.IsAuthenticated,)
    lookup_field = "pk"
    serializer_class = DetailSerializers

    def get_queryset(self):
       data = Data.objects.all()
       return data

Я хочу получить ответ примерно так:

{
"message": "success",
"status": 200,
"details": [
    {
        "id": 2,
        "DOB": "2012-10-21",
        "cycle_length": "10",
        "category": "2",
        "child_dob": null,
        "Period": "10",
        "Last_cycle": "2012-10-21",
        "userid": 2
    },

1 Ответ

2 голосов
/ 06 января 2020

Вы можете переопределить update из UpdateAPIView следующим образом:

class DetailUpdateView(generics.UpdateAPIView):
    permission_classes = (permissions.IsAuthenticated,)
    lookup_field = "pk"
    serializer_class = DetailSerializers

    def get_queryset(self):
       data = Data.objects.all()
       return data

    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)
       serializer.is_valid(raise_exception=True)
       self.perform_update(serializer)
       result = {
        "message": "success",
        "details": serializer.data,
        "status": 200,

       }
       return Response(result)
...