32

ユーザーのすべての権限を権限IDのリストとして取得したいのですが:

user.get_all_permissions()

権限名のリストを教えてください。どうやってするの?

4

7 に答える 7

43

特定のユーザーのすべての権限を取得するには、このユーザーが属するグループに関連付けられた権限も取得します。

from django.contrib.auth.models import Permission

def get_user_permissions(user):
    if user.is_superuser:
        return Permission.objects.all()
    return user.user_permissions.all() | Permission.objects.filter(group__user=user)
于 2014-12-23T16:31:46.630 に答える
24

重要なのは、次のようなアクセス許可オブジェクトを取得することです。

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

idそこで、次のようにプロパティにアクセスできます。

permissions[0].id

リストが必要な場合(id, permission_name)は、次のようにします。

perm_tuple = [(x.id, x.name) for x in Permission.objects.filter(user=user)]

それが役に立てば幸い!

于 2013-05-15T19:47:36.377 に答える