Django - 在视图中获取当前用户权限?

问题描述:

我试着去获得当前登录用户的权限Django - 在视图中获取当前用户权限?

下面我当前的尝试返回一个错误

from django.contrib.auth.models import Permission 
    from django.contrib.auth.models import User 
    permissions = Permission.objects.filter(user=User.id) 

错误

int()函数的参数必须是一个字符串,一个字节样对象或数字,而不是'DeferredAttribute'

没有人知道我该怎么做?有没有更简单的方法?

感谢

你得到的错误,因为User是用户模型。您应该使用request.user访问登录用户。

def my_view(request): 
    # Individual permissions 
    permissions = Permission.objects.filter(user=request.user) 

    # Permissions that the user has via a group 
    group_permissions = Permission.objects.filter(group__user=request.user) 

您应该检查用户是否已登录(例如,使用login_required)。

请注意,用户可能因其所在的组具有权限,或者因为他们是超级用户(相当于拥有所有权限)。