如果auto_now和auto_now_add混淆了,就会遇到问题。auto_now或auto_now_add是如何工作的?
auto_now:每次使用models.save()或models.create()时都会创建时间,但如果使用query.update(),时间就不起作用了,它只更新一些数据,但不会自动更新日期
auto_now_add:时间只有在第一次使用models.save()或models.create()时才会创建
它们应该如何使用?
auto_now_add应与created_date一起使用,auto_now应与updated_date一起使用
created_date = models.DateTimeField(auto_now_add = True)
updated_date = models.DateTimeField(auto_now = True)发布于 2021-01-15 03:01:39
要回答您的问题:如何最好地使用auto_now_add和auto_now?-您在DateTimeField或DateField中使用它们的想法完全正确!
当第一次创建和保存模型实例时,auto_now_add非常适合一次性修改模型上的字段,只对进行修改。正如您注意到的,created_at或timestamp字段不再需要更改,这是很好的。
当您需要更改字段时,只要在模型实例上调用auto_now ()方法,就可以使用.save()方法。正如您所提到的,updated_at将是一个很好的机会。
但是,正如在Difference between auto_now and auto_now_add中所指出的,这2是相互排斥的-所以不要创建一个模型字段并传递两个参数!
你的假设是正确的,只是想确认一下:)
https://stackoverflow.com/questions/65729665
复制相似问题