python - Django:模型对象保存中的 datetime.now() 时间不一致

标签 python django datetime django-models

enter image description here

上面是我在管理界面中的一张表格,按照id的降序排列(最近的记录在最上面)。这是我用来创建模型对象并保存的方式。

notification = Notification(from_user=from_user, to_user=to_user,
                            created_date=datetime.now())
notification.save()

此表的所有插入 Notification 仅在各种 post_save 信号处理程序中完成。会不会造成这样的不一致?

在 django 1.3.2 中使用 TIME_ZONE = 'GMT'。我可以尝试在模型中使用 auto_now_add=True 选项,但在此之前只想知道为什么会这样。

最佳答案

auto_now_add 不是一个好方法。避免使用它。最好的方法是使用设置默认值:

from django.utils import timezone

date_created = models.DateTimeField(default=timezone.now)

django.utils.timezone 将根据您的时区设置存储日期时间。

请注意 timezone.now 之后缺少的 (),这是因为我们将可调用对象传递给模型,并且每次保存新实例时都会调用它。有了括号,它只会在 models.py 加载时被调用一次。这question更详细地阐明了这个问题。

关于python - Django:模型对象保存中的 datetime.now() 时间不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14707547/

相关文章:

python - 如何复制另一个目录下的文件夹结构?

python - 如何强制日期时间在 python 中保留 0 微秒

Django:安全中间件使站点崩溃

python - 简单的留言簿 django : __init__() takes 1 positional argument but 2 were given

python - 用于 Python 的快速、可搜索的字典存储

python - https 背后的 django channel

c++ - 如何使用 C++ 将字符串日期时间插入 mysql

python - 是否有与 C# 的 DateTime.TryParse() 等效的 Python?

python - 如何获取hhh :mm datetime format with Python?

python - 如何删除列表中的重复数字,然后替换为新的随机数