我要在用户登录后在django中设置会话,并在注销时销毁会话。我正在使用内置的Auth LoginView进行登录
path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='users/login.html'), name='logout'),
答案 0 :(得分:1)
默认情况下,django在注销时自动销毁会话。基本上,它在注销时使用flush。现在,如果要在登录期间放入一些数据,则需要覆盖LoginView
。您可以尝试这样:
from django.contrib.auth import login
class CustomLogin(auth_views.LoginView):
def form_valid(self, form):
login(self.request, form.get_user())
self.request.session['some_data'] = "your data"
return HttpResponseRedirect(self.get_success_url())
并在您的网址中使用它:
path('login/', CustomLogin.as_view(template_name='users/login.html'), name='login'),
答案 1 :(得分:0)
在您的auth_views中添加此
from django.contrib.auth import logout
class LogoutView(View):
def get(self, request, *args, **kwargs):
logout(request)
return HttpResponseRedirect('/accounts/login/')
在网址中
path('logout/', LogoutView.as_view(), name='logout'),