DateField¶
- class DateField([auto_now=False, auto_now_add=False, **options])¶
这是一个使用Python的datetime.date实例表示的日期. 有几个额外的设置参数:
- DateField.auto_now¶
-
每次保存对象时,自动设置该字段为当前时间。用于"最后一次修改"的时间戳. 注意,它总是使用当前日期; 它不是一个您可以重写的默认值。
- DateField.auto_now_add¶
-
当对象第一次被创建时自动设置当前时间。用于创建时间的时间戳. 它总是使用当前日期(第一次被创建时的时间?); 它不仅是一个默认值,您可以重写。
该字段默认对应的表单控件是一个TextInput. 在管理员站点添加了一个JavaScript写的日历控件,和一个“Today"的快捷按钮.包含了一个额外的invalid_date错误消息键.
auto_now_add, auto_now, and default 这些设置是相互排斥的. 他们之间的任何组合将会发生错误的结果.
Note
在目前的实现中,设置auto_now或者auto_now_add为True将为让这个字段同时得到editable=False和blank=True这两个设置.
Note
auto_now and auto_now_add这两个设置会在对象创建或更新的时刻,总是使用default timezone(默认时区)的日期. 如果你不想这样,你可以考虑一下简单地使用你自己的默认调用或者重写save()(在save()函数里自己添加保存时间的机制.译者注)而不是使用auto_now orauto_now_add; 或者使用DateTimeField字段类来替换DateField 并且在给用户呈现时间的时候,决定如何处理从datetime到date的转换.