Django: get_perm(permision_string)

标签 django permissions

既然有 User.has_perm(permission_string)我觉得应该有get_perm(permission_string)某处。

我在文档中找不到它。

如何从权限字符串中获取权限对象?

对我来说,权限字符串是这样的:'myapp.permmission_name'。

最佳答案

所有权限都存储在 Permissions 模型中,可以这样获取:

from myapp.models import BlogPost
from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType

content_type = ContentType.objects.get_for_model(BlogPost)
permission = Permission.objects.get(codename='can_publish',
                                   content_type=content_type)

https://docs.djangoproject.com/en/1.7/topics/auth/default/#programmatically-creating-permissions

或者,如果您想从字符串中获取它:
from django.contrib.auth.models import Permission
app_label, codename = your_permisssion_string.split('.')
Permission.objects.get(content_type__app_label=app_label, codename=codename)

关于Django: get_perm(permision_string),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967759/

相关文章:

javascript - 使用 ionic、Angular 和 django+rest 框架上传图像

python - 为 Django 模型表单集设置 label_suffix

sql-server - 无法使用 django-pyodbc-azure 2.1.0.0 连接到 MSSQL

permissions - 具有完全权限的注册表

android ContextCompat.checkSelfPermission 总是返回 PERMISSION_GRANTED

linux - 在 Docker 容器中开发时如何管理权限?

python - 使用 Django Rest Framework 时如何访问请求正文并避免获取 RawPostDataException

python - Django Tastypie Postgres 服务器响应缓慢

windows - 如何为所有用户注册 COM 对象

Facebook Graph API read_stream 权限实际上被非 Facebook 品牌应用程序阻止了吗?