【发布时间】:2015-06-26 07:29:03
【问题描述】:
我的模型中有这段代码:
added_time = models.DateTimeField(
default=datetime.datetime.now()
)
迁移并重新启动 uwsgi 后,我现在在 MariaDB 中获得了第一个日期时间,接下来都是 - 与重置 uwsgi 后的第一个日期时间完全相同。
2015-04-19 16:01:46
2015-04-19 16:01:46
2015-04-19 16:01:46
2015-04-19 16:01:46
我通过将代码更改为:
added_time = models.DateTimeField(
auto_now_add=True
)
虽然我解决了问题,但我不确定为什么会有这样的行为?
【问题讨论】:
-
我对 Django 了解不多,但我的钱是在
default被评估一次,当类被评估时。它也发生在函数的关键字参数上。尝试:def foo(argument=datetime.datetime.now()): print argument,然后使用while循环或其他东西对其进行测试:while True: foo()你会看到argument没有改变 -
如果您在这里是因为
datetime.now没有在您的班级默认值中进行评估,请在此处查看我的帖子:dhariri.com/posts/56f68c45d1befa569505cf0f
标签: python django datetime uwsgi