今日または将来の日付のみを受け入れるように Django フォームを設定する方法を探していました。私は現在、フロントエンドにjQueryの日付ピッカーを持っていますが、モデルフォームへのフォームフィールドがあります。
助けてくれてありがとう、どうもありがとう。
date = forms.DateField(
label=_("What day?"),
widget=forms.TextInput(),
required=True)
今日または将来の日付のみを受け入れるように Django フォームを設定する方法を探していました。私は現在、フロントエンドにjQueryの日付ピッカーを持っていますが、モデルフォームへのフォームフィールドがあります。
助けてくれてありがとう、どうもありがとう。
date = forms.DateField(
label=_("What day?"),
widget=forms.TextInput(),
required=True)
フォームにメソッドを追加し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
http://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attributeを参照してください
Django 1.2+ を使用していて、モデルが常にこのルールを強制する場合は、モデルの検証もご覧ください。利点は、モデルに基づくすべてのモデルフォームがこの検証を自動的に使用することです。