0
私はすべてのレビューを特定のレストランの特定のレビューへの返信と共に一覧にしたいと思いましたが、レビューのみを一覧表示できました。特定のレビューに対するすべての返信を取得しようとしているうちに、レビューモデルで定義されているchildren()を呼び出しました。それはquerysetを返しました。一方、私はすべての特定の返信を返信者の名前で欲しい。キッズセットは子供の鍵の中に返されます
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
レビュー/ 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
特定の子どもキー内のすべての返信やリプライヤ名を一覧表示する方法レビュー?
投稿コメントが有効であり、また返信します。また、djangoテンプレートを使用して特定のレビューの返信を取得することができましたが、reactjsとapiを使用して特定のレビューの返信を取得するだけの問題があります。私は今この方法で試してみます。 – pythonBeginner
https://github.com/alanjds/drf-nested-routersを確認してください。ネストされたルートを作成すると、reactJSを使用してレビューapiを簡単に管理できます。 –