2011-02-09 78 views
14

私はDjangoフォームを今日または今日の日付だけを受け入れるように設定する方法を探していました。私は現在、フロントエンドにjQueryのdatepickerを持っていますが、ここではmodelformへのフォームフィールドがあります。Django:今日と未来の日付のみを受け入れるようにDateFieldを設定する方法

ご協力いただきありがとうございました。

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

答えて

24

あなたは日付が過去にないことを確認するために、フォームでclean()メソッドを追加することができます。

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 

あなたはジャンゴ1.2+とあなたのモデルを使用している場合http://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attribute

+0

答えに感謝します! – Emile

+1

"date Emile

+0

それを残念、私はそれを修正しました。 – Arnaud

1

を参照してくださいは、常にこのルールを強制的に、あなたはまた、model validationを見てみることができます。利点は、モデルに基づくモデルフォームがこの検証を自動的に使用することです。

関連する問題