首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django auto_now诉auto_now_add

Django auto_now诉auto_now_add
EN

Stack Overflow用户
提问于 2021-01-15 02:31:25
回答 1查看 3.2K关注 0票数 2

如果auto_nowauto_now_add混淆了,就会遇到问题。auto_nowauto_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一起使用

代码语言:javascript
运行
复制
created_date = models.DateTimeField(auto_now_add = True)
updated_date = models.DateTimeField(auto_now = True)
EN

回答 1

Stack Overflow用户

发布于 2021-01-15 03:01:39

要回答您的问题:如何最好地使用auto_now_addauto_now?-您在DateTimeField或DateField中使用它们的想法完全正确!

当第一次创建和保存模型实例时,auto_now_add非常适合一次性修改模型上的字段,只对进行修改。正如您注意到的,created_attimestamp字段不再需要更改,这是很好的。

当您需要更改字段时,只要在模型实例上调用auto_now ()方法,就可以使用.save()方法。正如您所提到的,updated_at将是一个很好的机会。

但是,正如在Difference between auto_now and auto_now_add中所指出的,这2是相互排斥的-所以不要创建一个模型字段并传递两个参数!

你的假设是正确的,只是想确认一下:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65729665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档