自定义User模型类,让它是继承自AbstractUser,然后再settings.py中设置为自己的用户模型类
# django认证系统使用的模型类
AUTH_USER_MODEL = 'user.User'
- 创建用户
password = make_password(password)设置为密文
user = User.objects.create(username=username,email=email ,password=password)
验证时使用check_password(text, 密文)返回值为False或True
补
显示注册页面和注册处理逻辑可以合并在一起;那通过什么区分呢?(
什么时候显示注册页面,什么时候是进行注册逻辑的处理
)
- 如果请求方式为get,那么就显示注册页面,如果请求方式为post(也就是提交表单)
就是注册的逻辑处理
以上:
可以把url合并在一起,form表单中的action=“/user/register”。
流程: 用户首先是访问路径是/user/register ,对应register这个视图函数,请求方式为get,所以显示注册页面,当用户提交完表单后,跳转到/user/register,对应register视图函数,请求方式为post,进行逻辑,而地址栏中一直显示的是/user/register。
- 否则在提交表单错误后,若要重新提交表单,地址栏会是/user/register_handle,在这个地址栏中填注册信息不太完美。
补
- 上面是在视图函数中判断请求方式来区分是显示注册页面还是注册处理逻辑,这时候使用类视图会更好。
在views.py中
from django.views.generic import View
class RegisterView(View):
def get(self,request):
return render(request, 'register.html')
def post(self,request):
''' 注册的处理 '''
在urls.py中
urlpatterns = [
url(r'^register$', views.RegisterView.as_view(), name='register')
]
网友评论