Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用django在同一浏览器中登录多个用户_Django_Django Sessions - Fatal编程技术网

如何使用django在同一浏览器中登录多个用户

如何使用django在同一浏览器中登录多个用户,django,django-sessions,Django,Django Sessions,我正在创建一个应用程序,其中管理员和客户登录相同的浏览器。 我读了很多博客,但都不能解决我的问题。Django使用基于会话的登录 我面临的问题,而注销我的管理员,然后我的客户自动注销。可能是基于会话的功能 My admin LoginView and Logoutview: class AdminLoginView(SuccessMessageMixin,LoginView): authentication_form = LoginForm template_name

我正在创建一个应用程序,其中管理员和客户登录相同的浏览器。 我读了很多博客,但都不能解决我的问题。Django使用基于会话的登录

我面临的问题,而注销我的管理员,然后我的客户自动注销。可能是基于会话的功能

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或域的方式分开?这是我的管理员,这是我的客户