So I'm working on Django back-end and React front-end. I have a many-to-many field in one of my models, and trying to serialize.
I've googled some related issues and tried things out, but none worked.
Let me show you my code first.
models.py
class Category(models.Model):
objects = models.Manager
category = models.CharField(max_length = 20)
class Content(models.Model):
objects = models.Manager()
title = models.CharField(max_length = 100, null=True)
category = models.ManyToManyField(Category)
serializers.py
class ContentSerializer(serializers.ModelSerializer):
category_name = serializers.SerializerMethodField()
class Meta:
model = Content
fields = [
'title', 'category_name'
]
def get_category_name(self, obj):
categories = self.context['book'].category.all()
return categories
Finally, views.py
@api_view(['GET'])
def each_book(request, pk):
this_book = Content.objects.get(pk=pk)
serialized = ContentSerializer(
this_book,
context={
'request':request,
'book' : this_book
},
)
return Response(serialized.data)
I keep on getting error saying Object of type Category is not JSON serializable. What do you think is the problem? Thanks a lot in advance. :)
----
LATEST CODE
models.py
class Category(models.Model):
category = models.CharField(max_length = 20)
class Content(models.Model):
title = models.CharField(max_length = 100, null=True)
category = models.ManyToManyField(Category)
serializers.py
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ['category']
class ContentSerializer(serializers.ModelSerializer):
category_name = CategorySerializer(many=True)
class Meta:
model = Content
fields = [
'category_name'
]