2

谁能解释一下,是什么(User, 'username', 'username')意思(User, 'username', 'username', 'groups__name', 'group_name')

@permission_required('auth.change_user', return_403=True)
def my_view(request):
    return HttpResponse('Hello')

@permission_required('auth.change_user', (User, 'username', 'username'))
def my_view(request, username):
    user = get_object_or_404(User, username=username)
    return user.get_absolute_url()

@permission_required('auth.change_user',
    (User, 'username', 'username', 'groups__name', 'group_name'))
def my_view(request, username, group_name):
    user = get_object_or_404(User, username=username,
        group__name=group_name)
    return user.get_absolute_url()

在这里拍摄:http: //pythonhosted.org/django-guardian/api/guardian.decorators.html

4

1 回答 1

1

从文档:

可选地,应该进行检查的实例可以作为第二个参数或作为与传递给 get_object_or_404 相同的元组参数传递,但必须作为字符串对提供。

所以如果你想检查一个User模型实例的权限,你可以按顺序传递元组(ModelName, argname, varname)(注意argnamevarname应该成对),比如:

(User, 'username', 'username')

与函数中的参数相同get_object_or_404()

get_object_or_404(User, username=username)

如果您有元组,则类似(User, 'username', 'username', 'groups__name', 'group_name')...

您可以查看源代码以获得更多理解:https ://github.com/lukaszb/django-guardian/blob/master/guardian/decorators.py#L74

于 2013-08-19T11:11:57.243 回答