我正在尝试实现自定义登录/注销功能。我的要求与内置的 django 登录功能略有不同。因此,我必须以一种可以在数据库中输入值 0 / 1 来检查用户是否登录的方式来实现此功能。我有一个布尔值。这里的问题实际上是:我应该如何传递一个用户对象/一个变量,它告诉我我的用户已登录(在我的情况下users.is_logged_in = True
:)到每个 html 模板,以便用户(和我的应用程序)知道它登录。此外,他应该能够通过单击每个 html 页面上的链接来注销。当用户成功登录时,是否有任何全局模板可以创建并制作占位符之类的东西?我的代码是:
def checkIfUserIsValid(request, template_name='appCenter.html'):
email = str(request.POST.get('email','')).strip()
password = str(request.POST.get('password','')).strip()
try:
users = Users.objects.get(email = email, password = password)
users.is_logged_in = True
users.save()
return direct_to_template(request, template_name, context_instance=RequestContext(request))
except Users.DoesNotExist:
incorrectUserOrPassError = "Incorrect Username or Password. Please try again."
return render_to_response('index.html', {'incorrectUserOrPassError':incorrectUserOrPassError},
context_instance=RequestContext(request))
def logOutUser(request, template_name='index.html'):
return direct_to_template(request, template_name, context_instance=RequestContext(request))
PS:我已经研究了 render() 方法..
return render(request,'appCenter.html',{'users':users})
我可以做这样的事情并将模板用作全局模板或其他东西吗?但我看到的问题是,一旦用户通过身份验证,我就必须将他重定向到 appCenter.html。