Пример #1
0
def user_register(request):
	curtime=get_datetimenow();
	
	if request.user.is_authenticated():
		return HttpResponseRedirect("/register/")
	try:
		if request.method=='POST':
			username=request.POST.get('username','')
			password1=request.POST.get('password1','')
			password2=request.POST.get('password2','')
			email=request.POST.get('email','')
			nickname=request.POST.get('nickname','')
			errors=[]
			
			registerForm=RegisterForm({'username':username,'password1':password1,'password2':password2,'email':email,'nickname':nickname})
			if not registerForm.is_valid():
				errors.extend(registerForm.errors.values())
				return render(request,"register.html",{'curtime':curtime,'username':username,'email':email,'nickname':nickname,'errors':errors})
			if password1!=password2:
				errors.append(u"两次输入的密码不一致!")
				return render(request,"register.html",{'curtime':curtime,'username':username,'email':email,'nickname':nickname,'errors':errors})
				
			filterResult=Users.objects.filter(username=username)#c************
			if len(filterResult)>0:
				errors.append(u"用户名已存在")
				return render_to_response("/register/",RequestContext(request,{'curtime':curtime,'username':username,'email':email,'nickname':nickname,'errors':errors}))
			
			user=Users()
			user.username=username
			user.set_password(password1)
			user.email=email
			user.nickname=nickname
			user.save()
			newUser=auth.authenticate(username=username,password=password1)
			if newUser is not None:
				auth.login(request, newUser)
				return HttpResponseRedirect(settings.ROOTPATH)
	except Exception,e:
		errors.append(str(e))
		#这个errors会出来一堆u/什么什么的未编码utf8(
		return render(request,"register.html",{'curtime':curtime,'username':username,'email':email,'nickname':nickname,'errors':errors})