我有一个使用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来执行此操作?
我有一个模型可以为您提供帮助
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
希望可以帮助说些什么的人