Serializer.py:
from rest_framework import serializers
from .models import BlogPost, BlogComment
class CommentSerializer(serializers.ModelSerializer):
author = serializers.StringRelatedField()
class Meta:
model = BlogComment
fields = ['id', 'author', 'text', 'posts']
class PostSerializer(serializers.ModelSerializer):
author = serializers.StringRelatedField()
comment_set = CommentSerializer(many=True)
class Meta:
model = BlogPost
fields = ['id', 'created', 'author', 'text', 'comment_set']
# depth = 2
views.py:
@csrf_exemptdef post_list(request):
if request.method == 'GET':
post = BlogPost.objects.all()
serializer = PostSerializer(post, many=True)
return JsonResponse(
serializer.data, safe=False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = PostSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(
serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)