22

今日または将来の日付のみを受け入れるように Django フォームを設定する方法を探していました。私は現在、フロントエンドにjQueryの日付ピッカーを持っていますが、モデルフォームへのフォームフィールドがあります。

助けてくれてありがとう、どうもありがとう。

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

4 に答える 4

34

フォームにメソッドを追加し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を参照してください

于 2011-02-09T07:20:04.853 に答える
2

Django 1.2+ を使用していて、モデルが常にこのルールを強制する場合は、モデルの検証もご覧ください。利点は、モデルに基づくすべてのモデルフォームがこの検証を自動的に使用することです。

于 2011-02-09T11:50:16.303 に答える