2

在 Django 1.0 中,如果用户在表单字段中仅输入空格(“”),捕获并显示错误的最佳方法是什么?

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

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

如果用户在描述 CharField 中仅输入空格(“”),则需要对 Item 类或 ItemForm 类进行哪些更改,以便 form.is_valid() 失败并显示错误?

在 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 回答