如何使用django在同一浏览器中登录多个用户
我正在创建一个应用程序,其中管理员和客户登录相同的浏览器。 我读了很多博客,但都不能解决我的问题。Django使用基于会话的登录 我面临的问题,而注销我的管理员,然后我的客户自动注销。可能是基于会话的功能如何使用django在同一浏览器中登录多个用户,django,django-sessions,Django,Django Sessions,我正在创建一个应用程序,其中管理员和客户登录相同的浏览器。 我读了很多博客,但都不能解决我的问题。Django使用基于会话的登录 我面临的问题,而注销我的管理员,然后我的客户自动注销。可能是基于会话的功能 My admin LoginView and Logoutview: class AdminLoginView(SuccessMessageMixin,LoginView): authentication_form = LoginForm template_name
My admin LoginView and Logoutview:
class AdminLoginView(SuccessMessageMixin,LoginView):
authentication_form = LoginForm
template_name = 'login.html'
redirect_field_name = reverse_lazy('admin_panel:dashboard')
redirect_authenticated_user = False
success_message = '%(username)s login Successfully !'
def dispatch(self, *args, **kwargs):
if self.request.user.is_authenticated:
# messages.info(self.request, f"{self.request.user.firstname} is already Logged In")
return redirect('/admin/dashboard/')
return super().dispatch(*args, **kwargs)
def get_success_url(self):
url = self.get_redirect_url()
LOGIN_REDIRECT_URL = reverse_lazy('admin_panel:dashboard')
return url or resolve_url(LOGIN_REDIRECT_URL)
class LogoutView(LogoutView):
"""
Log out the user and display the 'You are logged out' message.
"""
next_page = "/admin/login"
def dispatch(self, request, *args, **kwargs):
response = super().dispatch(request, *args, **kwargs)
messages.add_message(request, messages.INFO,'Successfully logged out.')
return response
我已经实现了基于客户的登录和注销
def LoginView(request):
form = LoginForm(request.POST or None)
if form.is_valid():
username = form.cleaned_data["username"]
password = form.cleaned_data["password"]
remember_me = form.cleaned_data["remember_me"]
user = User.objects.get(email=username)
if user and user.check_password(password):
if user.is_active:
if remember_me == False:
request.session.set_expiry(0)
request.session['user_id'] = user.id
request.session['username'] = user.email
return HttpResponseRedirect('/')
else:
context = {'auth_error': "You're account is disabled"}
return render(request, 'forntend-signin.html', context )
else:
context = {
'auth_error': 'username and password incorrect'
}
return render(request, 'forntend-signin.html', context)
else:
context = {
"form": form
}
return render(request, 'forntend-signin.html', context)
def customer_logout(request):
try:
if request.session['username']:
del request.session['user_id']
del request.session['username']
else:
del request.session['user_id']
except KeyError:
HttpResponseRedirect("/")
return HttpResponseRedirect("/")
请建议我如何解决这个问题
如果有可用的文档,请共享。管理员和客户是否以URL或域的方式分开?这是我的管理员,这是我的客户