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

244
Visualizações
Guarde el modelo con @transaction.atomic en la vista basada en clases

Estoy tratando de manejar tanto agregar nuevo como editar objeto. Mi archivo views.py es como-

 personal_data=Personal.objects.create(emp_fname=first_name, emp_mname=middle_name, emp_lname=last_name) # rest of object is created here try: print "pk", pk with transaction.atomic(): if pk != None: print "hey" #save model goes here messages.add_message(request, messages.INFO, 'Data updated successfully') else: print "hello" personal_data.save() family_data.save() address_data.save() education_data.save() pre_company_data.save() messages.add_message(request, messages.INFO, 'Data saved successfully') except IntegrityError: handle_exception()

La condición if-else funciona correctamente pero los datos se guardan en ambos casos. incluso si comenté el código que se muestra arriba, los datos van a la base de datos.

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

0

Si quiere decir que personal_data se guarda en ambos casos, es porque está llamando a Personal.objects.create , que crea y guarda el modelo en la base de datos en un solo paso (referencia: https://docs.djangoproject.com/en /dev/topics/db/queries/#creating-objects ). Si desea separar la creación del guardado, cree el modelo utilizando el constructor habitual:

 personal_data = Personal(emp_fname=first_name, emp_mname=middle_name, emp_lname=last_name) try: with transaction.atomic(): if pk != None: # do stuff else: personal_data.save() # do some other stuff except IntegrityError: handle_exception()

En este caso, el modelo de datos_personales se guardará solo en la rama else.

about 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