gpt4 book ai didi

Django 的 DateTimeField 的 "auto_now"似乎不起作用

转载 作者:行者123 更新时间:2023-12-04 11:46:32 25 4
gpt4 key购买 nike

我有一个 Comment模型。它具有以下时间戳字段:

created = models.DateTimeField(auto_now_add=True, blank=True, null=True)
last_edit = models.DateTimeField(auto_now=True, blank=True, null=True)

现在,当我使用以下格式更新评论时: Comment.objects.filter(...).update(text="some new text") , last_edit字段不会更新,而评论的文本会更新。有什么问题?

更新:另外,我正在使用 filter因为 update不适用于 get ,即 Comment.objects.get(...).update(...)不会工作。我真正想做的是 get因为我确信一次只需要更新一条评论。

最佳答案

因为您正在使用 update ,它直接在数据库中进行更新,而 auto_now是在 Python 中完成的。这会起作用:

for commment in Comment.objects.filter(...):
comment.text="some new text"
comment.save()

显然,这比在数据库中一次性完成的效率低。如果您真的需要它,那么您还必须在更新中设置日期:
Comment.objects.filter(...).update(text="some new text", last_edit=datetime.datetime.now())

关于Django 的 DateTimeField 的 "auto_now"似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com