0

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)
Pradip Kachhadiya
  • 2,067
  • 10
  • 28
devnext
  • 872
  • 1
  • 10
  • 25

1 Answers1

2

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

Shubham Agrawal
  • 417
  • 2
  • 5