Use LoginRequiredMixin and UserPassesTestMixin at the same time

前端 未结 2 475
广开言路
广开言路 2021-01-05 03:56

I want to have a TemplateView Class that uses LoginRequiredMixin and UserPassesTestMixin at the same time. Something like this:

from django.views.generic imp         


        
2条回答
  •  无人及你
    2021-01-05 04:35

    You should override get_login_url:

    class FinanceOverview(LoginRequiredMixin, UserPassesTestMixin, TemplateMixin):
        login_url = '/login'
        redirect_field_name = 'next'
    
        def test_func(self):
            return self.request.user.groups.filter(name="FinanceGrp").exists()
    
        def get_login_url(self):
            if self.request.user.is_authenticated:
                return URL_FOR_AUTHENTICATED_USERS
            return super().get_login_url()
    
        def get(self, request, *args, **kwargs):
            DO SOMETHING IF USER IS AUTHENTICATED AND ALSO MEMBER OF GROUP FinanceGrp
    

提交回复
热议问题