向我使用的组添加权限时:
managers.permissions.add(
Permission.objects.get(codename='add_user')
)
使用代码名
add_user
现在,当检查用户是否具有特定权限时,我使用
users.add_user
ieself.assertTrue(self.user.has_perm('users.add_user'))
这是为什么。是否可以使用
app_name
来get
权限。当我尝试时,我得到:
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')