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

ドキュメントから:

オプションで、チェックを行う必要があるインスタンスは、2 番目の引数として、または get_object_or_404 に渡されるものと同じタプル パラメーターとして渡すことができますが、文字列のペアとして提供する必要があります。

したがって、1 つのUserモデル インスタンスのアクセス許可を確認する場合は、次のようにタプルを順番に渡すことができます(と はペアにする必要があることに(ModelName, argname, varname)注意しargnameてください)。varname

(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 に答える