regexvalidator的Django客户端表单验证不起作用

时间:2019-06-20 18:04:00

标签: regex django forms validation

我已经实现了我想在客户端进行验证的Django model + form。除RegexValidator外,所有约束均按预期完美验证。正则表达式本身可以在Python和JS中正常工作。我认为问题在于验证不会从Django的模型/表单传播到顶层。即客户端正则表达式的验证甚至没有开始。

我在这里发现了很多类似的问题,但是所有答案都无济于事。例如,here个人使用EmailValidator(因为它不是电子邮件或任何其他专业字段,所以不能),parsley(我已经使用过django-angular可能会合谋)来提供建议或进行验证HTML(我真的很想保留DRY原则)。 Writing my own validatornaming parameters也不起作用。

有没有办法在没有第三方库的情况下在客户端验证RegexValidator?

# models.py
class Contact(models.Model):
    firstname = models.CharField(max_length=254)
    lastname = models.CharField(max_length=254)
    address = models.CharField(max_length=254)
    email = models.EmailField(max_length=254)

    phone_regex = RegexValidator(regex=r'^\+\d{8,15}$', message="Phone number must be entered in the format: '+99999999'. Up to 15 digits allowed.")
    phone = models.CharField(max_length=16, validators=[phone_regex])
# forms.py
class ContactForm(forms.ModelForm):

    class Meta:
        model = Contact
        fields = ('firstname', 'lastname', 'address', 'email', 'phone')
# views.py
class ContactFormView(FormView):
    template_name = 'contact_add.html'
    form_class = ContactForm
<!-- contact_add.html -->
<form>
    {{ form }}
    <button type="submit" class="btn" ng-click="addContact()">Add contact</button>
</form>

0 个答案:

没有答案