2015-06-30 25 views
1

我的models.py:如何強制用戶在DD-MM-YYYY格式中輸入日期字段,並在django中以'HH:MM'格式輸入時間字段?

class Attendancename(models.Model): 
    teacher_name = models.ForeignKey(Teachername) 
    date = models.DateField('Date') 
    intime = models.TimeField('IN-TIME') 
    outtime = models.TimeField('OUT-TIME') 

我forms.py:

class AttendancenameForm(ModelForm): 
    teacher_name = forms.ModelChoiceType(queryset=Teachername.objects.all()) 
    date = /*** What should I write to enforce 'DD-MM-YYY'?***/ 
    intime = /*** to enforce 'HH:MM' format?***/ 

請給我提供建議,以使其在上面的格式,否則,它必須提高對錯誤輸入的輸入。我怎樣才能在django表單中實現它?

我也想根據銀泰和outtime計算總小時數,我如何在我的views.py文件中實現它?

回答

2

django.froms.DateFielddjango.forms.TimeField都有一個名爲input_formats的輸入參數,它分別是日期和時間輸入格式的列表。他們定義瞭解析用戶輸入時應該嘗試的模式。

date = DateField(input_formats=['%d-%m-%Y']) 
intime = TimeField(input_formats=['%H:%M']) 

查看https://docs.djangoproject.com/en/1.8/ref/forms/fields/#瞭解詳情。

+0

我試過在我的django forms.py文件中使用'input_formats',但是當我在表單中提交值時,它會提示我 - '輸入有效的日期'。但我按照我指定的格式提交有效的日期。我不知道到底是什麼問題。請建議我如何解決它? –

+0

這是Javascript的提示嗎?你是否使用Django Widget進行表單渲染?我猜這個小部件會使用settings.DATE_INPUT_FORMATS(https://docs.djangoproject.com/en/1.8/ref/settings/#date-input-formats),試着適當地設置它,對於settings.TIME_INPUT_FORMATS也是一樣。我假設你改變這個設置時,表單字段實例也在使用它,你可能不需要再指定'input_formats'參數了。但我沒有測試過這個。 – Bernhard

相關問題