queryset - Respuesta del objeto anidado Django Rest Framework
nested relationships django rest framework (1)
Supuse que tienes el modelo de Replies
como este:
class Replies(models.Model):
comment = Models.Foreignkey(Comment)
content = models.CharField(max_length=1000,blank=True)
likes = models.IntegerField(default=0)
Entonces podría usar la clase rest_framework.serializers.ModelSerializer
( http://www.django-rest-framework.org/api-guide/serializers/#modelserializer ):
from rest_framework import serializers
class RepliesSerializer(serializers.ModelSerializer):
class Meta:
model = Replies
fields = (''id'', ''content'', ''parent_id'', ''likes'')
parent_id = serializers.Field(source=''comment.parent_id'')
class CommentSerializer(serializers.ModelSerializer):
class Meta:
model = Comment
fields = (''id'', ''parent_id'', ''content'', ''likes'', ''replies'')
replies = RepliesSerializer(many=True)
Soy nuevo en Django Rest Framework, estoy tratando de implementar Comment System API, tengo un modelo como este
class Comment(models.Model):
parent_id = models.IntegerField()
user = models.ForeignKey(User)
content = models.CharField(max_length=1000,blank=True)
likes = models.IntegerField(default=0)
active = models.BooleanField(default=True)
created = models.DateTimeField(auto_now=False,auto_now_add=True)
updated = models.DateTimeField(auto_now=True,auto_now_add=False)
donde parent_id se utiliza para las respuestas, si Parent_id es mayor que 0, significa que el comentario actual es respuesta a algún otro comentario. Ahora quiero usar Django Rest Framework para tener una respuesta json como esta:
[{"id": 10, "parent_id": 0, "contenido": "Test Comment", "me gusta": 1, respuestas: [{"id": 11, "parent_id": 10, "content": " Respuesta 1 Comentario de prueba "," me gusta ": 1,} {" id ": 12," parent_id ": 10," content ":" Reply 2 Test Comment "," likes ": 1,}]
¿Puede algún amigo ayudarme a hacer esa respuesta? Estoy usando Django 1.7.6 y Django Rest Framework 3.1.1