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

299
Visualizações
Actualice Create Method en Django Rest Framework para dos serializadores anidados

He encontrado muchas respuestas a preguntas similares pero no a mi específica. Estoy tratando de actualizar Create Method para mi serializador que tiene dos serializadores anidados:

 class TaskSerializer(serializers.ModelSerializer): products = ProductSerializer() prep = PrepSerializer() class Meta: model = Task fields = '__all__' def create(self, validated_data): products_data = validated_data.pop('products') task = Task.objects.create(**validated_data) for products_data in products_data: Product.objects.create(task=task, **products_data) return task

También quiero agregar el serializador anidado "prep" para que se actualice al mismo tiempo, pero parece que no puedo obtener la sintaxis correcta.

Cualquier ayuda, muy apreciada.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Debería funcionar bien, creo que te estás perdiendo many=True . ¿Esto funciona? (Suponiendo que los products y prep deberían ser muchos)

Y también asumiendo que sus modelos están estructurados así:

 class Task(models.Model) #fields class Product(models.Model) task = models.ForeignKey(Task, on_delete=models.CASCADE) class Prep(models.Model) task = models.ForeignKey(Task, on_delete=models.CASCADE)
 class TaskSerializer(serializers.ModelSerializer): products = ProductSerializer(many=True) preps = PrepSerializer(many=True) class Meta: model = Task fields = '__all__' def create(self, validated_data): products_data = validated_data.pop('products') preps_data = validated_data.pop('preps') task = Task.objects.create(**validated_data) for products_data in products_data: Product.objects.create(task=task, **products_data) for prep_data in preps_data: Prep.objects.create(task=task, **prep_data) return task

A continuación, puede enviar una solicitud como:

 { "products": [ {"foo": "bar"} ], "preps": [ {"foo": "bar"} ], }
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