Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

415
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda