如何在模型中将默认值设置为今天日期?
我的模特: vote_date = models.DateField(_('vote date'),null = False,blank = False)
答案 0 :(得分:2)
没有一个答案可以解决原始问题。重述问题,如何将日期字段的默认值设置为今天日期,仍然允许用户覆盖默认值。
来自DJango docs:
DateField.auto_now
每次对象自动将字段设置为现在 得救了。对“最后修改”有用 时间戳。请注意当前日期 永远使用;它不仅仅是一个 您可以覆盖的默认值。DateField.auto_now_add
自动 将对象设置为现在的字段 是第一次创建。对创作很有用 时间戳。注意当前 总是使用日期;它不仅仅是一个 您可以覆盖的默认值。
如果这不仅仅是“何时被添加/编辑”字段,那么答案就是使用
default=datetime.date.today
注意没有parens。这将默认设置为函数,而不是在评估模型时函数返回的值。
答案 1 :(得分:1)
请改为使用auto_now_add
,因为auto_now
会在修改对象时更改投票日期。
http://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.DateField.auto_now_add
答案 2 :(得分:0)
这解决了我的问题:
vote_date = models.DateField(_('vote date'), null=False, blank=False, auto_now=True)
答案 3 :(得分:0)
django command extensions
可以帮助您完成许多事情:
- CreationDateTimeField - 将自动生成的DateTimeField 设置对象第一个时的日期 保存到数据库中。适用于 与弃用的方式相同 auto_now_add keyword。
- ModificationDateTimeField - 将自动生成的DateTimeField 设置保存对象的日期 到数据库。以同样的方式工作 作为已弃用的auto_now关键字。