モデルには整数フィールドがあります。このフィールドの値の意味は「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に変換するにはどうすればよいですか?