Django注册views函数编写

编写注册模型比较复杂,好好理解下。

如果数据有效 → 创建新用户对象 new_user →已验证的用户 authenticated_user = authenticate(username, password) → 登录并重定向 → return

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def register(request):
"""注册"""
if request.method != 'POST':
# 显示空的表单
form = UserCreationForm()
else:
# 处理好填写的表单
form = UserCreationForm(data=request.POST)

if form.is_valid():
new_user = form.save() # 保存一个新对象

# 让用户自动登录,再重定向
# 第一个密码和第二个密码都可以
authenticated_user = authenticate(username=new_user.username,
password=request.POST['password1'])

login(request, authenticated_user)
return HttpResponseRedirect(reverse('myapp:index')) # 登录城后重定向

context = {'form': form}
return render(request, 'users/register.html', context)
———— The End ————