【发布时间】:2016-08-25 22:32:27
【问题描述】:
我想列出所有评论以及对特定餐厅特定评论的回复,但我只能列出评论。在尝试获取对其特定评论的所有回复时,我调用了评论模型中定义的 children()。它返回查询集。另一方面,我想要所有带有回复者名称的特定回复。
serializers.py
class ReviewSeraializer(ModelSerializer):
reply_count = SerializerMethodField()
children = SerializerMethodField()
class Meta:
model = Review
read_only = ('id',)
fields = ('id','content_type','object_id','parent','review','children','reply_count','created')
def get_reply_count(self, obj):
if obj.is_parent:
return obj.children().count()
return 0
def get_children(self, obj):
obj_children = []
if obj.is_parent:
return str(obj.children())
# for obj in obj.children():
# print(obj.review)
# obj_children.append(obj.review)
# return str(obj_children)
return None
review/models.py
class Review(models.Model):
reviewer = models.ForeignKey(User, null=True)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
parent = models.ForeignKey("self", null=True, blank=True, related_name="parent_review")
review = models.TextField()
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
objects = ReviewManager()
def children(self): # replies
return Review.objects.filter(parent=self)
@property
def is_parent(self):
if self.parent is not None:
return False
return True
如何列出特定评论的子键中的所有回复和回复者名称?
【问题讨论】:
标签: python django python-3.x django-rest-framework