如何在应用程序中使用仅限组的权限?

时间:2018-02-27 17:30:09

标签: django python-3.x django-views

如何在应用程序中使用仅限组的权限?

我有一个在group1中的用户。

我打算获得获得许可的许可。

怎么做?

class home(LoginRequiredMixin, View):
    login_url = '/login/'
    def get(self, request):
        if request.user.has_perm('group1'):
           return render(request, 'index.html')

1 个答案:

答案 0 :(得分:0)

成为群组成员与拥有权限不同。要检查组group1中的用户,您可以执行以下操作:

if self.request.user.groups.filter(name='group1').exists():

您可能会发现UserPassesTestMixin有用。

# It's recommended to use CamelCase for class based view names, 
# i.e. Home instead of home
class Home(UserPassesTestMixin, View):
    login_url = '/login/'

    def test_func(self):
        # Use self.request.user.is_authenticated() in Django <= 1.9
        return self.request.user.is_authenticated and self.request.user.groups.filter(name='group1').exists()

    def get(self, request):
       return render(request, 'index.html')