首页 > 技术文章 > Django 模型中DateField字段

haoshine 2016-04-29 23:01 原文

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_addauto_now, and default 这些设置是相互排斥的. 他们之间的任何组合将会发生错误的结果.

Note

在目前的实现中,设置auto_now或者auto_now_addTrue将为让这个字段同时得到editable=Falseblank=True这两个设置.

Note

auto_now and auto_now_add这两个设置会在对象创建或更新的时刻,总是使用default timezone(默认时区)的日期. 如果你不想这样,你可以考虑一下简单地使用你自己的默认调用或者重写save()(在save()函数里自己添加保存时间的机制.译者注)而不是使用auto_now orauto_now_add或者使用DateTimeField字段类来替换DateField 并且在给用户呈现时间的时候,决定如何处理从datetime到date的转换.

推荐阅读