2012-12-23 70 views
1

我重寫我的模型管理的形式,以改變的TimeField場的顯示時間的格式:格式化TimeField

class myTimeForm(forms.ModelForm): 
    start_time = forms.TimeField(widget=forms.TimeInput(format='%H:%M')) 
    class Meta: 
     model = MyModel 

class MyModelAdmin(admin.ModelAdmin): 
    form = myTimeForm 

現在,now和時鐘按鈕,我曾與默認形式有消失(以下Start time的截圖是重寫的部件,End time用默認的一個。

enter image description here

我錯過了什麼?

回答

2

Django管理員使用AdminTimeWidget而不是forms.TimeInput。嘗試將您的代碼更改爲以下內容:

from django.contrib.admin.widgets import AdminTimeWidget 

class myTimeForm(forms.ModelForm): 
    start_time = forms.TimeField(widget=AdminTimeWidget(format='%H:%M')) 
    class Meta: 
     model = MyModel 
+0

您怎麼知道?我不認爲它在文檔-_- – cedzz

+0

不,「AdminTimeWidget」目前沒有記錄。您可以通過查看[代碼](https://github.com/django/django/blob/ff05de760cc4ef4c7f188e163c722ec3bc1f0cbf/django/contrib/admin/options)來查看它是Django管理中的'models.TimeField'的默認控件。 PY#L78)。 – Alasdair

+0

gotcha ..謝謝。顯然,設置格式不起作用:(。試用了它的每個組合,放在__init__中以覆蓋字段小部件也仍然不起作用 – cedzz