用django 写了一个用户注册通过邮箱审核的代码。有点乱。哪位帮看看哪里还不对? 多谢

cndeer 2013-11-20 04:36:12
views.py:


##注册函数
def vip_reg(request):
if request.method == 'POST':
form = Reg_Form(request.POST, request.FILES)
if form.is_valid():
user = User.objects.create_user(
username = form.cleaned_data['username'],
password = form.cleaned_data['password1'],
email = form.cleaned_data['email'],
sex = form.cleaned_data['sex'],
addr_zz = form.cleaned_data['addr_zz'],
ahjs = form.cleaned_data['ahjs'],

)

user.is_active = False
user.save()
send_email(user)
###在这里发送信件。用邮箱验证审核?让 is_active=True
return HttpResponseRedirect('/vip/reg/ok/')
else:
return HttpResponse(u'注册用户时发生错误,请返回修改后重新注册!')
else:
form = Reg_Form()
variables = RequestContext(request, {'form':form})
return render_to_response('registration/register.html', variables)


def send_email(user):
email = user.email
if isinstance(email, unicode):
email = email.encode('utf-8')
#email_code = uuid.uuid5(uuid.NAMESPACE_DNS, email+str(time.time())).hex


html_content = render_to_string('send_email.html', {'email_code':active_code(email), 'user':user, 'pk':user.id })
subject, form_email, to = u'您注册了网站', 'gaoqing2018_com@163.com', email
text_content = 'aaaaaa123'
msg = EmailMultiAlternatives(subject, text_content, form_email, [to])
msg.attach_alternative(html_content, 'text/html')
msg.send()
return HttpResponse(u'请查看你注册的信箱完成注册!!')

def reguseryz(request, pk, email_code):
#pk = int(pk)
try:
pk = int(pk)
user = User.objects.get(id=pk)
except (User.DoesNotExist,ValueError):
return render_to_response('ok.html')
if user.is_active:
return HttpResponseRedirect('/accounts/login/')
elif email_code == active_code(user.email):
user.is_active = True
user.save()
return render_to_response('ok.html')

def active_code(email):
"""
激活码
"""
email_code = uuid.uuid5(uuid.NAMESPACE_DNS, email+str(time.time())).hex
return email_code



urls.py:


url(r'^vip/reg/ok/$', 'vipbbs.views.reg_ok'),
url(r'^vip/reguser/(?P<pk>\d+)/(\w+)/$', 'vipbbs.views.reguseryz'),
url(r'^accounts/login/$', 'django.contrib.auth.views.login'),


send_email.html:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>

<body>
Hello,欢迎来到zb.com!




或者复制下面的链接到浏览器



http://127.0.0.1:8000/vip/reguser/{{pk}}/{{email_code}}
</body>
</html>



现在的问题是:

上面的代码现在还不能正确运行。能收到邮件。主要是上面的差不多是蒙着写的。思路不知道对不?

怎么样把那个激活码与那个用户绑定了? 我试过如果一个激活码对了。那它可以激活别的用户的。怎么样让激活码验证一次后就失效了?

上面的那用户注册通过邮箱审核的代码哪位朋友帮我改改看?

...全文
409 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cndeer 2013-11-26
  • 打赏
  • 举报
回复
已经解决了。 就是在models里建一个字段。用来存生成的激活码。然后在审核的时候拿出来验证一下。成功后就通过审核。并且删除激活码。谢谢各位
  • 打赏
  • 举报
回复
学习了 看不出错误 呵呵
  • 打赏
  • 举报
回复
你生成的激活码没有在数据库保存么 有个状态应该就很简单了吧
内容概要:本文围绕基于NSGA-2算法的电-热-气综合需求响应(IDR)在综合能源系统中的多目标优化问题展开研究,提出了一种融合智能优化算法与能源系统协同调度的解决方案。研究系统性地构建了包含电力、热力与天然气多能耦合的综合能源系统模型,设计了以能效提升、运行成本降低和环境效益优化为目标的多目标优化框架,并采用NSGA-2算法求解该复杂非线性优化问题,获得Pareto最优解集。文中详细阐述了IDR机制建模方法、多目标优化问题的数学建模过程以及NSGA-2算法的关键实现步骤,包括编码方式、交叉变异策略与非支配排序机制,并通过Matlab代码实现了完整的仿真验证流程,展示了该方法在平衡多个冲突目标方面的优越性能。; 适合人群:具备电力系统、能源系统建模或优化算法基础的研究生、科研人员及工程技术人员,特别适用于从事综合能源系统规划、需求响应策略设计、多目标进化算法应用等相关领域的研究人员; 使用场景及目标:①应用于综合能源系统的运行优化与规划决策,支持多能互补场景下的协同调度分析;②为科研工作者提供NSGA-2算法在能源系统中实际应用的完整Matlab代码实现范例,助力学术论文复现、算法改进与模型拓展; 阅读建议:建议读者结合文中提供的Matlab代码,按照系统建模、目标函数设计、约束处理到算法实现的研究脉络逐步学习,重点关注Pareto前沿的生成过程、多目标权衡分析及算法参数敏感性,以深入掌握多目标进化算法在复杂能源系统优化中的工程化应用方法。

37,738

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧