在Django中存在一种在模型中使用以下定义的通用模式:
some_date = models.DateTimeField(default=datetime.now)
遗憾的是,这会产生问题,因为它将some_date
的值设置为:u'2011-10-18 08:14:30.242000'
。
如果您现在使用表单集让用户提交/编辑其他实例,则表单将始终评估为更改。
原因是初始日期时间值为u'2011-10-18 08:14:30.242000'
,表单小部件的当前值为u'2011-10-18 08:14:30'
。这总是不同的。
很遗憾,我写不出类似"default=currenttime"
和auto_add
和auto_now_add
的内容有不同的行为,并始终将字段设置为editable=False
。
答案 0 :(得分:0)
您可以使用模型的保存方法,或者在forms.Form
中复制此行为class Something(models.Model):
pub_date = models.DateTimeField(editable=False)
change_date = models.DateTimeField(editable=False)
def save(self, *args, **kwargs):
if not self.id:
self.pub_date = datetime.datetime.today()
self.change_date = datetime.datetime.today()
super(Something, self).save(*args, **kwargs)