2

Django 1.0 で、ユーザーがフォーム フィールドに空白 (" ") のみを入力した場合にエラーをキャッチして表示する最良の方法は何ですか?

class Item(models.Model):
    description = models.CharField(max_length=100)

class ItemForm(ModelForm):
    class Meta:
        model = Item

ユーザーが CharField の説明に空白 (" ") のみを入力した場合、form.is_valid() が失敗してエラーが表示されるように、クラス Item またはクラス ItemForm にどのような変更を加える必要がありますか?

form.is_valid() の後、説明フィールドの空白のみをチェックして検証エラーを発生させるコードを書くことができましたが、もっと良い方法が必要です。RegexField を使用して、入力した説明を空白だけにしないように指定できますか。助言がありますか?

4

3 に答える 3

3
class ItemForm(forms.ModelForm):
    class Meta:
        model = Item

    def clean_description(self):
        if not self.cleaned_data['description'].strip():
            raise forms.ValidationError('Your error message here')

フォーム検証ドキュメントは、良い読み物を提供するかもしれません。

于 2008-12-02T03:26:13.787 に答える
1

理解した。description = forms.RegexField(regex=r'[^(\s+)]')をクラス ItemForm に追加するだけで、 form.is_valid() が失敗し、エラーが表示されます

class ItemForm(ModelForm):
    description = forms.RegexField(regex=r'[^(\s+)]')
    class Meta:
        model = Item

独自のメッセージを含めるには、error_message=... を forms.RegexField に追加します。

description = forms.RegexField(regex=r'[^(\s+)]', error_message=_("Your error message here."))
于 2008-12-02T14:13:15.337 に答える
1

なぜ正規表現?str.strip()文字列が空白のみで構成されているかどうかを確認するために使用します

于 2008-12-02T14:15:25.863 に答える