Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

411
Vistas
Serializadores Django, error de claves foráneas

En el serializador, intento mostrar los datos de la persona en Employee, pero recibo este error AttributeError cuando intento obtener un valor para las persons de campo en el serializador EmployeeSerializer . El campo del serializador puede tener un nombre incorrecto y no coincidir con ningún atributo o clave en la instancia del Employee . El texto de excepción original era: el objeto 'Empleado' no tiene atributo 'personas'.

Aquí están mis modelos.py

 class Person(models.Model): id = models.IntegerField(primary_key=True) name = models.CharField(max_length=50) curp = models.CharField(max_length=50) rfc = models.CharField(max_length=12) gender = models.CharField(max_length=20) class Employee(models.Model): id = models.IntegerField(primary_key=True) joining_date = models.DateField() salary = models.DecimalField(18, decimal_places=2, max_digits=50) status = models.IntegerField() person = models.ForeignKey(Person, related_name='persons', on_delete=models.CASCADE) user = models.ForeignKey(User) branch = models.ForeignKey(Branch)

Serializadores

 class PersonSerializer(serializers.ModelSerializer): class Meta: model = Person fields = ('name', 'curp', 'rfc', 'gender') class EmployeeSerializer(serializers.ModelSerializer): persons = PersonSerializer(many=True) class Meta: model = Employee fields = ('persons')

Es la primera vez que trabajo en django, así que no sé cómo llamar a las teclas externas. En mi base de datos tengo la tabla Empleado con 3 claves foráneas (usuario, persona y sucursal) ¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

En su serializador de empleados, debe cambiar el nombre de la variable de personas a persona, y supongo que dado que solo una persona estaría relacionada con el objeto de empleado, puede cambiar muchos a Falso

 class EmployeeSerializer(serializers.ModelSerializer): person = PersonSerializer(many=False, ) class Meta: model = Employee fields = ('person')
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda