2011-02-09 4 views
14

장고 양식을 오늘 또는 미래의 날짜 만 수락하도록 설정하는 방법을 찾고있었습니다. 프론트 엔드에는 현재 jQuery datepicker가 있지만 여기에는 modelform에 대한 양식 필드가 있습니다.Django : DateField를 오늘 및 미래 날짜 만 받아들이도록 설정하는 방법

감사합니다. 많은 도움을 주셔서 감사합니다.

date = forms.DateField(
    label=_("What day?"), 
    widget=forms.TextInput(), 
    required=True) 

답변

24

당신은 날짜가 과거에없는 것을 확인하기 위해 형태로 clean() 방법을 추가 할 수 있습니다. 당신이 장고를 사용하고 1.2+ 항상이 규칙을 강제 모델, 당신은 또한 model validation 좀 걸릴 수 있습니다 경우

import datetime 

class MyForm(forms.Form): 
    date = forms.DateField(...) 

    def clean_date(self): 
     date = self.cleaned_data['date'] 
     if date < datetime.date.today(): 
      raise forms.ValidationError("The date cannot be in the past!") 
     return date 

http://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attribute

+0

답변에 대한 감사합니다. – Emile

+1

"date Emile

+0

죄송합니다. – Arnaud

1

를 참조하십시오. 장점은 모델을 기반으로하는 모든 모델 폼이이 유효성 검사를 자동으로 사용한다는 것입니다.

관련 문제