我有以下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的模型字段参考中获得