2017-10-12 105 views
0

我需要一些幫助,以顯示默認文本字段的形式insead中的日期時間選擇器。我使用的是Django 1.11,並且遵循了最近在此發佈的解決方案:Django 1.11 - forms.Models: change default form widget for DateTimeField但是Django 1.11 - ModelForm:更改DateTimeField的默認表單窗口小部件

我在使用相同的代碼時收到錯誤。 我收到的第一個錯誤是:無法導入名稱'小部件'。我可以通過導入「小部件」來傳遞此錯誤。這個已經改名了嗎?

重命名爲小部件後,我收到的第二個錯誤是NameError:名稱'forms'未定義。我可以通過更改代碼來傳遞此錯誤: Class DateInput(widgets.DateInput): 這是錯誤的正確處理方法嗎?

我接收第三誤差是:NameError:名稱「Date_Input」沒有定義我可以通過改變的代碼的最後一塊通過此錯誤(在Date_Input刪除下劃線)以上:

widgets = { 
      'missing_date': DateInput() 
     } 

這些後更改,我不再有任何錯誤,但我的表單中的日期字段仍然呈現爲文本字段而不是日期選擇器。

任何人都可以進一步闡明上述解決方案,爲什麼它可能不適合我?

此外,我想修改上述鏈接中提到的解決方案,以使datetime選取器不僅僅是日期選取器,但我首先想要使用之前的解決方案中的代碼來測試功能。謝謝!

回答

0

我最終通過分割成日期時間日期和時間的單獨的領域和forms.py使用下面的代碼解決這個:

class TimeInput(forms.TimeInput): 
    input_type = 'time' 

class DateInput(forms.DateInput): 
    input_type = 'date' 

和我的ModelForm類中:

widgets = { 
     'start_date': DateInput(), 
     'start_time': TimeInput(), 
     'end_date': DateInput(), 
     'end_time': TimeInput(), 
    } 
相關問題