sur*_*190 4 python django permissions
向组添加权限时,我使用:
managers.permissions.add(
Permission.objects.get(codename='add_user')
)
Run Code Online (Sandbox Code Playgroud)
使用代号 add_user
现在,在检查用户是否具有特定权限时,我使用users.add_userie。在app_name前置
self.assertTrue(self.user.has_perm('users.add_user'))
Run Code Online (Sandbox Code Playgroud)
这是为什么。是否可以get通过users.add_user.
当我尝试时,我得到:
django.contrib.auth.models.DoesNotExist: Permission matching query does not exist.
Run Code Online (Sandbox Code Playgroud)
模型名称不是唯一的。您可以User在不同的应用程序中使用另一个模型。在这种情况下Permission.objects.get(codename='add_user')会失败MultipleObjectsReturned。因此,使用 sth 更安全:
Permission.objects.get(codename='add_user', content_type__app_label='users', content_type__model='user')
Run Code Online (Sandbox Code Playgroud)