Django日期时间问题(默认值=datetime.now())

我有以下db模型:

从日期时间导入日期时间
类别付款(型号.型号):
#我排除了与问题无关的字段
date=models.DateTimeField(默认值=datetime.now(),blank=True)

我使用以下命令添加一个新实例:

tp=TermPayment.objects.create(**kwargs)

我的问题:数据库中的所有记录在日期字段中都有相同的值,即第一次付款的日期。服务器重新启动后,一条记录具有新日期,而其他记录具有与第一条相同的日期。看起来好像缓存了一些数据,但我找不到位置

数据库:mysql 5.1.25

django v1.1.1

它看起来像是在定义模型时计算的datetime.now(),而不是每次添加记录时

Django有一个功能可以完成您已经尝试完成的任务:

date=models.DateTimeField(auto\u now\u add=True,blank=True)

date=models.DateTimeField(默认为datetime.now,blank=True)

第二个示例与当前示例之间的区别在于缺少括号。通过传递datetime.now而不带括号,就是传递实际函数,每次添加记录时都会调用该函数。如果您传递它datetime.now(),那么您只是在计算函数并传递返回值

更多信息可在Django的模型字段参考中获得

发表评论