简体   繁体   English

登录后如何查看用户类型? DJANGO

[英]How to check user type after login ? DJANGO

I have two user types in my application.我的应用程序中有两种用户类型。 How do I check user type after login?登录后如何查看用户类型? My login view extends django's LoginView.我的登录视图扩展了 django 的 LoginView。 In my Login View, i tried with form_valid, but I think it does validation before authentication.在我的登录视图中,我尝试使用 form_valid,但我认为它会在身份验证之前进行验证。

models.py模型.py

class CustomUser(AbstractUser):
    is_client = models.BooleanField(default=False)
    is_supermarket = models.BooleanField(default=False)

    def __str__(self):
        return self.username

views.py视图.py

class LoginView(LoginView):
    
    
    def get(self, request, *args, **kwargs):
    #check if the user is logged in and redirect to home page
        if request.user.is_authenticated:
            return redirect('produtos:home')
        return super(LoginView, self).get(request, *args, **kwargs)

Is this what you need?这是你需要的吗?

class LoginView(LoginView):
    
    
    def get(self, request, *args, **kwargs):
    #check if the user is logged in and redirect to home page
        if request.user.is_authenticated:
            return redirect('produtos:home')
        if request.user.is_supermarket:
            return redirect('supermarket-login') #your unique login page for supermarket user
        return super(LoginView, self).get(request, *args, **kwargs)

I don't know if it's the best approach, but I get the expected behavior我不知道这是否是最好的方法,但我得到了预期的行为

class LoginView(LoginView):
        
    def get(self, request, *args, **kwargs):
        if request.user.is_authenticated:
            return redirect('produtos:home')
        return super(LoginView, self).get(request, *args, **kwargs)
    
    def form_valid(self, form):
        if form.get_user().is_supermarket:
            self.request.session.flush()
            logout(self.request)
            return redirect('login')
        return super().form_valid(form)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM