def registerView(request):
is_register =True
title='注册'
pageTitle='用户注册'
password = True
button="获取验证码"
sent_VCode=False
obj = TextForm(request.POST)
if request.method == 'POST':
u = request.POST.get('username','')
p = request.POST.get('password','')
email = request.POST.get('email', '')
if request.POST.get('getVCode',''):
if User.objects.filter(username=u):
tips = '用户已存在'
return
elif u =="":
tips = '用户名不能为空!'
return render(request,'user.html',locals())
else:
if len(p) <= 8:
tips = '密码位数应大于8!'
return render(request,'user.html',locals())
VCodeInfo = True
VCode = str(random.randint(100000, 999999))
request.session['VCode'] = VCode
email_part = email[3:]
email_template_name = 'findpsemail.html'
t = loader.get_template(email_template_name)
context = [u, VCode]
c = Context({"data": context})
message = t.render({"data": context})
subject = "新用户注册"
sender = settings.EMAIL_HOST_USER
recipient = [email]
msg = EmailMultiAlternatives(subject, message, sender, recipient)
msg.attach_alternative(message, "text/html")
msg.send()
tips = '验证码已发送,请在邮箱查收!'
else:
tips = '错误!'
return render(request,'user.html', locals())
采用该方法发现提交表单后表单数据全部消失,改为自定义表单类的方法,成功实现保留表单数据。
以下:
if obj.is_valid():
u=obj.cleaned_data['username']
p = obj.cleaned_data['password']
email = obj.cleaned_data['email']
同时html代码如下
<div>{{ obj.username }}</div>
<div>{{ obj.password }}</div>
<div>{{ obj.email }}</div>