Django Rest Как показать все связанные объекты foreignkey?
У меня есть сайт-блог, и мои посетители могут также комментировать записи моего блога. Каждое сообщение блога имеет несколько комментариев, и я хочу показать эти комментарии под каждым одним сообщением блога . Предположим, Blog1 имеет 10 комментариев, поэтому все 10 комментариев будут показаны под Blog1
вот мой код:
models.py
class Blog(models.Model):
blog_title = models.CharField(max_length=200, unique=True)
class Comment(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(max_length=100)
comment = models.TextField()
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
Serializer.py
class CommentSerializer(serializers.ModelSerializer):
class Meta:
model = Comment
fields = '__all__'
class BlogSerializer(serializers.ModelSerializer):
class Meta:
model = Blog
exclude = ("author", "blog_is_published")
lookup_field = 'blog_slug'
extra_kwargs = {
'url': {'lookup_field': 'blog_slug'}
}
views.py:
class BlogViewSet(viewsets.ModelViewSet):
queryset = Blog.objects.all().order_by('-id')
serializer_class = BlogSerializer
pagination_class = BlogPagination
lookup_field = 'blog_slug'
Вы можете получить доступ к списку комментариев из объекта blog, используя атрибут comment_set
, поэтому добавьте поле comment_set
в ваш сериализатор:
class BlogSerializer(serializers.ModelSerializer):
comment_set = CommentSerializer(many=True)
class Meta:
model = Blog
exclude = ("author", "blog_is_published")
lookup_field = 'blog_slug'
extra_kwargs = {
'url': {'lookup_field': 'blog_slug'}
}