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