python - 如何为博客详细视图上的评论制作 api。我不需要回复评论(即没有儿童评论)
问题描述
我想显示博客文章详细信息的评论。我是 Django 的新手。我必须为此制作一个api。这就是我所拥有的。
class BlogPost(models.Model):
CATEGORY_CHOICES = (
('travel_news', 'Travel News',),
('travel_tips', 'Travel Tips',),
('things_to_do', 'Things to Do',),
('places_to_go', 'Places to Go'),
)
image = models.ImageField(blank=True, null=True)
categories = models.CharField(max_length=64, choices=CATEGORY_CHOICES, default='travel_news')
description = models.CharField(max_length=255)
content = RichTextUploadingField()
# todo support for tags
tags = models.CharField(max_length=255, default='#travel') #todo
date_created = models.DateField()
@property
def html_stripped(self):
from django.utils.html import strip_tags
return strip_tags(self.content)
class Comment(models.Model):
blog = models.ForeignKey(BlogPost, on_delete=models.CASCADE, default=1)
name = models.CharField(max_length=255)
email = models.EmailField()
subject = models.CharField(max_length=255)
comment = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
class Meta:
ordering = ('created_at',)
这是我的序列化器
class CommentSerializer(serializers.ModelSerializer):
blog = serializers.StringRelatedField()
class Meta:
model = Comment
fields = '__all__'
class BlogPostSerializer(serializers.ModelSerializer):
comments = CommentSerializer(source='comments.content')
class Meta:
model = BlogPost
fields = ['image', 'categories', 'description', 'content', 'tags', 'date_created', 'comments']
# fields = '__all__'
这是我的看法。
class BlogPostDetailsListAPIView(ListAPIView):
serializer_class = BlogPostSerializer
def get_queryset(self):
return BlogPost.objects.filter(pk=self.kwargs['pk'])
在这里,我的视图仅返回 BLogpost 对象,但不返回评论。如何将评论与帖子详细信息视图一起返回?我们可以没有内容类型吗?
解决方案
我最近在做这个。在您的 BlogSerializer 中,您可以从 更改CommentSerializer(source='comments.content')
为CommentSerializer(many=True, read_only=True)
。
我是 Restframework 的新手,所以不太了解它是怎么做的。
推荐阅读
- html - 将列用作表中的行
- python - python中datetime模块的isoformat函数返回不正确的偏移量
- javascript - THREE.js 不渲染图像
- r - 带有每个国家/地区值的交互式欧洲地图
- python - Pandas 将 df1 中的一列与 df2 中的多列进行比较
- javascript - 通过方法返回的值不会将文本更改为适当的颜色
- sql - 创建 SQL 表时遇到问题?
- python - 两个数据框之间的 Vlookup 与公共列的重复值
- python - 在 Micro Focus RPA 中使用 python 移动消息的 API PATCH 请求
- logstash - 如何匹配 UUID/GUID 并在 logstash 中替换