Django Forms.py电子邮件和电话验证

问题描述 投票:1回答:1

我有一个使用forms.py创建的联系表单,我想使用正则表达式或任何内置的Django验证器为电子邮件和电话字段添加验证。我使用的唯一文件是forms.py,views.py和html模板(此联系表单没有models.py)。如果用户输入了错误的电话号码或电子邮件,我想向他们显示一条消息,指出其格式不正确,并且他们需要更正其输入。在用户输入有效数据之前,不应提交表单。

我在下面尝试过的内容:

Forms.py:https://dpaste.org/mc7G

Views.py:https://dpaste.org/0PFZ

HTML模板:https://dpaste.org/bBvR

我将如何仅使用Django但不使用JavaScript来执行此操作?

python django validation contact-form
1个回答
0
投票

我有一个模型可以为您提供帮助

class SaveMail(models.Model):
    email = models.CharField(max_length=50)

    def savemail(self):
        if self.confirmail():
            self.save()

    def confirmail(self):
        t1 = self.email.find('@')
        if self.email[:t1].replace('_', '').replace('-', '').isalnum() and t1 != -1:
            t2 = self.email.find('.')
            t3 = self.email.count('.')
            if self.email[t1 + 1:t2].replace('-', '').isalnum() and (t2 != -1 or t3 != 0):
                for n in range(0, t3):
                    if n == t3 - 1:
                        if self.email[t2 + 1:].isalnum():
                            return True
                    elif self.email[t2 + 1:self.email.find('.', t2 + 1)].isalnum:
                        t2 = self.email.find('.', t2 + 1)
                    else:
                        return False
            else:
                return False
        else:
            return False

下一步您应该做什么

# views.py
from .models import SaveMail

mail = SaveMail(email=req.cleaned_data['email'])
if mail.confirmail():
    pass # here you would put what you would like to do according to what you want

希望可以帮助说些什么的人

© www.soinside.com 2019 - 2024. All rights reserved.