向我使用的组添加权限时:

managers.permissions.add(
            Permission.objects.get(codename='add_user')
        )

使用代码名add_user
现在,当检查用户是否具有特定权限时,我使用users.add_userie
self.assertTrue(self.user.has_perm('users.add_user'))

这是为什么。是否可以使用app_nameget权限。
当我尝试时,我得到:
django.contrib.auth.models.DoesNotExist: Permission matching query does not exist.

最佳答案

型号名称不是唯一的您可以在不同的应用程序中使用另一个User模型。在这种情况下,Permission.objects.get(codename='add_user')将以MultipleObjectsReturned失败。因此,更安全的做法是:

Permission.objects.get(codename='add_user', content_type__app_label='users', content_type__model='user')

10-05 20:58
查看更多