问题描述
我正在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)