在模型中,我有整数字段。该字段值的含义是“自 1.1.1970 以来的天数”,因此我想在管理界面中将其显示为日期AdminDateWidget
,以便更轻松地选择日期。
我唯一的想法是创建新的小部件以将整数转换为日期:
class ExpireWidget(AdminDateWidget):
def render(self, name, value, attrs=None):
if isinstance(value, (int, long)):
value = datetime.date(1970, 1, 1) + datetime.timedelta(value)
return super(ExpireWidget, self).render(name, value, attrs)
以及以下代码admin.py
:
class LdapUserAdminForm(forms.ModelForm):
class Meta:
widgets = {
'shadow_expire': ExpireWidget
}
当我在管理日期中显示它时,一切都很好,但在我保存它之前,我应该将日期转换为整数。我认为我可以使用clean_field_name
函数来实现它,但是之前执行了一些验证clean_field_name
(是clean()
吗?)并且我收到错误,我应该输入整数值。
在验证之前我应该如何将日期转换为 int?