Serializar dos veces el mismo modelo DRF

18 views
Skip to first unread message

hyac...@gmail.com

unread,
Jul 1, 2022, 1:56:11 PM7/1/22
to Django-es
Saludos,
Estoy construyendo una API de un modelo el cual me arroja la siguiente estructura
  "nucleodelusuario_id": 2, 
  "usuario_id": 2, 
  "nucleo": 2, 
  "parentesco_id": 2, 
  "fecha": "1974-05-19T19:00:00-05:00" 
}

Pero ahora me hacen el siguiente requerimiento de estructura de la API. Lo que entiendo es que debo serializar dos veces el mismo modelo para que en el array "usuarios_del_nucleo" me traiga el id de usuario y el id de parentesco del mismo modelo.

{
    "nucleodelusuarioid": 2,
    "usuario_id": 2,
    "nucleo": 2, 
    "parentesco_id": 2,
    "fecha_novedad": "1974-05-19T19:00:00-05:00", 
    "usuarios_del_nucleo":[ 
         { 
                   "usuario_id":"",
                   "parentesco_id":"",
          }
 ], 
}

Quisiera saber si me pueden orientar en este caso especial de como construir esta API con esta estructura a partir de un único modelo.

Gracias...

Modelo

class Nucleodelusuario(models.Model):
nucleodelusuario_id = models.BigAutoField(primary_key=True)
nucleofamiliar = models.ForeignKey(Nucleofamiliar ,on_delete=models.PROTECT)
usuario = models.ForeignKey(Usuario, on_delete=models.PROTECT)
parentesco = models.ForeignKey(Parentesco, on_delete=models.PROTECT)
fecha = models.DateTimeField()

serializer.py
class NucleodelusuarioListSerializers(serializers.ModelSerializer):

class Meta:
model = Nucleodelusuario
fields = ['nucleodelusuario_id','usuario','parentesco','fecha']

carlos

unread,
Jul 1, 2022, 9:32:02 PM7/1/22
to djan...@googlegroups.com
Hola eso se hace con las depth=1
mirate ambos ejemplo y prueba los para que lo entiendas

saludos

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/django-es/6736780d-d78d-4b4d-a793-257ee07d1b52n%40googlegroups.com.


--
att.
Carlos Rocha
Reply all
Reply to author
Forward
0 new messages