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

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

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 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!