devnext
devnext

Reputation: 902

How i can to return json serializable with django rest framework?

I have a custom apiview to query item in cart. I got a instance but when i return response it display error like this:

Object of type Order is not JSON serializable

my views.py:

class getCart(APIView):

    def get(self, request, format=None):

        try:
            order = Order.objects.get(user=request.user, confirm=False)
        except Order.DoesNotExist:
            order = Order(user=request.user, confirm=false)
            order.save()

        return Response(order)

Upvotes: 0

Views: 2669

Answers (1)

Shubham Agrawal
Shubham Agrawal

Reputation: 427

So, you have to convert your model instance into json, in DRF it is done through Serializer

As it is specific to model so I am using ModelSerializer

from rest_framework.serializers import ModelSerializer

class OrderSerializer(ModelSerializer):
    class Meta:
        model = Order
        fields = "__all__"

def get(self, request, format=None):

    try:
        order = Order.objects.get(user=request.user, confirm=False)
    except Order.DoesNotExist:
        order = Order(user=request.user, confirm=false)
        order.save()

    return Response(OrderSerializer(order).data)

You can refer from here:- https://www.django-rest-framework.org/api-guide/serializers/#modelserializer

Upvotes: 2

Related Questions