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

915
Views
Diferencia entre auto_now y auto_now_add

Lo que entendí en los atributos del campo de modelos de Django es

  • auto_now : actualiza el valor del campo a la hora y fecha actuales cada vez que se llama a Model.save().
  • auto_now_add : actualiza el valor con la hora y la fecha de creación del registro.

Mi pregunta es ¿qué pasa si un modelo archivado contiene tanto auto_now como auto_now_add establecidos en True? ¿Qué sucede en ese caso?

over 4 years ago · Santiago Trujillo
5 answers
Answer question

0

Estos campos están integrados en Django expresamente para este propósito: los campos auto_now se actualizan a la marca de tiempo actual cada vez que se guarda un objeto y, por lo tanto, son perfectos para rastrear cuándo se modificó por última vez un objeto, mientras que un campo auto_now_add se guarda como la marca de tiempo actual cuando se La fila se agrega por primera vez a la base de datos y, por lo tanto, es perfecta para rastrear cuándo se creó.

over 4 years ago · Santiago Trujillo Report

0

De acuerdo con la documentación de django, usar tanto auto_now como auto_now_add en los campos de su modelo como True dará como resultado un error porque ambos son mutuamente excluyentes.

over 4 years ago · Santiago Trujillo Report

0

Como dice la documentación oficial de Django:

auto_now , auto_now_add y default son mutuamente excluyentes y darán como resultado un error si se usan juntos

over 4 years ago · Santiago Trujillo Report

0

Si un archivo en un modelo contiene tanto auto_now como auto_now_add establecidos en True , se producirá un error como este:

ERRORES: appname.Model.field_name: (fields.Efield_number) Las opciones auto_now, auto_now_add y default son mutuamente excluyentes. Solo una de estas opciones puede estar presente.

over 4 years ago · Santiago Trujillo Report

0

auto_now tiene prioridad (obviamente, porque actualiza el campo cada vez, mientras que auto_now_add solo se actualiza en la creación). Aquí está el código para el método DateField.pre_save :

 def pre_save(self, model_instance, add): if self.auto_now or (self.auto_now_add and add): value = datetime.date.today() setattr(model_instance, self.attname, value) return value else: return super().pre_save(model_instance, add)

Como puede ver, si se establece auto_now o ambos auto_now_add y el objeto es nuevo, el campo recibirá el día actual.

Lo mismo para DateTimeField.pre_save :

 def pre_save(self, model_instance, add): if self.auto_now or (self.auto_now_add and add): value = timezone.now() setattr(model_instance, self.attname, value) return value else: return super().pre_save(model_instance, add)
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!