Django Pythonanywhere,模型字段default = timezone.now重复相同的时间多次

问题描述

我正在pythonanywhere上托管一个Web应用。

在我的一个模型中,我有一个字段,当用户执行特定操作(在这种情况下,提交表单)时捕获日期时间,随后将其记录在数据库中。

from django.utils import timezone
upload_datetime = models.DateTimeField('date uploaded',default=timezone.Now())

但是,如下图所示,数据库中的大多数行显示的时间完全相同。在正常情况下,这种情况很少见,因此我在这里假设一个错误。我可以从哪里开始寻找任何帮助吗?

Database entries of upload_datetime

解决方法

您需要传递now函数,而 not 则不调用该函数,因为这样,当解释类时,该函数将被调用一次,然后重用相同的{{1} }。

datetime

所以没有括号。

但是您实际上不需要自己设置默认值。 Django有一个auto_now_add=… parameter [Django-doc],用于指定您要使用当前时间戳对其进行初始化:

from django.utils.timezone import now

class MyModel(models.Model):
    upload_datetime = models.DateTimeField('date uploaded',default=now)