我的用户只需通过注册页面分两个阶段(页面)注册:
myUsers
)中,也存储在Django的User
模型中,以进行身份验证和角色分配。myUsers
对象,然后定向到主页。现在,我的大多数观看次数都有@login_required()
封装,但刚注册并定向到家的用户无法访问这些观看次数,但老用户可以访问这些观看次数。
用户通过登录页面登录:
sign_in = sign_in_form(request.POST or None)
if sign_in.is_valid():
user_name = sign_in.cleaned_data['username']
user_password = sign_in.cleaned_data['password']
user = authenticate(username = user_name, password = user_password)
if user is not None:
if user.is_active:
login(request, user)
else:
#handle_this
以上代码运行良好,用户可以访问所有<{>>视图,其中包含login_required
。但是,如果我尝试authenticate()
注册用户,他们就无法使用@login_required
访问观看次数:
sign_up = sign_up_form(request.POST or None)
if sign_up.is_valid():
user_name = sign_up.cleaned_data['username']
user_email = sign_up.cleaned_data['email']
user_password = sign_up.cleaned_data['password']
#Save all these information to myUsers model and save same to User model.
user = authenticate(username = user_name, password = user_password)
if user is not None:
if user.is_active:
login(request, user)
#Proceed to page two and then to home page after saving user's interest to myUsers model.
else:
#handle_this
现在,如果此用户完成了她的注册过程并且主页的收益尝试访问包含login_required
的视图,则会抛出:
http://127.0.0.1:8000/accounts/login/?next=/mySite/user/yax/
请求方法:GET 请求网址:http://127.0.0.1:8000/accounts/login/?next=/mySite/user/yax/
使用myProject.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式:
^ MYSITE /
当前网址(accounts / login /)与其中任何一个都不匹配。
他们必须再次注销和登录以使一切正常。我该怎么做才能防止这种情况?