unknown
unknown

Reputation: 332

How to return custom JSON response in UpdateAPIView?

I was trying to return some custom message after user complete updated data after submit. How can i do this in 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

I want response something like this:

{
"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
    },

Upvotes: 3

Views: 1307

Answers (1)

Ngoc Pham
Ngoc Pham

Reputation: 1458

you can override update from UpdateAPIView like this:

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)

Upvotes: 4

Related Questions