使用 django 验证带有引发错误的表单

Validate form with raise errors with django

我正在尝试验证一个表单,用户无法通过该表单发送联系信息,为此,我有:

class ActualizarCotizacionForm(ModelForm):
    def __init__(self, *args, **kwargs):
        super(ActualizarCotizacionForm, self).__init__(*args, **kwargs)
        for field_name, field in self.fields.items():
            field.widget.attrs['class'] = 'form-control'
            self.fields['proposal'].widget.attrs['rows'] = '4'
            self.fields['deliverable'].widget.attrs['rows'] = '4'

    class Meta():
        model = AffiliateQuote
        fields = ['proposal','deliverable','delivery_time','fee']


    def clean(self):
        data = self.cleaned_data['proposal']
        if "311" in data:
            raise forms.ValidationError("You cant send phone numbers through the form")
        return data

在模板中,我在字段 proposal 上方有这一行:{{form.proposal.errors.as_text}}

我在这里放的验证“311”只是为了举例,但是有了这个,我无法让它工作,我在 proposal 字段中写了“311”,但错误没有显示,如何我能做到吗?

我们把这个验证放在clean_proposal方法中,例如:

def clean_proposal(self):
        data = self.cleaned_data['proposal']
        if "311" in data:
            raise forms.ValidationError("You cant send phone numbers through the form")
        return data