Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

410
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!