2012-03-11 204 views
0

在模型中我有整數字段。此字段的值的含義是「自1970年1月1日以來的天數」,因此我想在管理界面中使用AdminDateWidget作爲日期顯示它,以便更容易地選擇日期。用Django自定義值的自定義小部件admin

我唯一的想法是創建新的窗口小部件,以整數轉換成日期:

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?

回答