首页 > 解决方案 > 如果用户尝试仅传递几个字母,如何为电子邮件字段引发错误

问题描述

如果用户只输入“虚拟日期”而没有“@”,我该如何提高错误和信息?电子邮件模型email = models.EmailField(max_length=254)只是防止传递空字段,仅此而已。有人可以建议吗?

def addContact(request):
    form = ContactForm
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('/contact')

    context = {'form': form}
    return render(request, 'contact/new.html', context)

形式:

class ContactForm(ModelForm):
    class Meta:
        model = Contact
        fields = '__all__'

楷模:

class Contact(models.Model):
    full_name = models.CharField(max_length=500)
    relationship = models.CharField(max_length=50)
    email = models.EmailField(max_length=254)
    phone_number = models.CharField(max_length=20)
    address = models.CharField(max_length=100)

    def __str__(self):
        return self.full_name

标签: pythondjangovalidation

解决方案


如果您使用 EmailField,那么它有一个内置的验证器。这是代码(https://docs.djangoproject.com/en/3.1/ref/validators/#emailvalidator

您可以使用此验证器来检查用户输入。

这是源代码:https ://docs.djangoproject.com/en/2.2/_modules/django/core/validators/#EmailValidator


推荐阅读