看起来datetime.Now()
是在定义模型时(而不是每次添加记录时)正在评估。
Django具有一项功能,可以完成您正在尝试做的事情:
date = models.DateTimeField(auto_Now_add=True, blank=True)
要么
date = models.DateTimeField(default=datetime.Now, blank=True)
第二个示例与当前示例之间的区别在于缺少括号。通过datetime.Now
不带括号的传递,就传递了实际的函数,每次添加记录时都会调用该函数。如果传递它datetime.Now()
,那么您只是在评估函数并将其返回值传递给它。
Django的模型字段参考中提供了更多信息。