Django为什么权限代码名称不同于检查它是否有权限?

时间:2017-10-04 08:47:30

标签: python django permissions

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

$.ajax({
  dataType: 'json', <----
  type: 'GET',
  url: 'get/allworldbankaccounts.json',
  data: $("body form:first").serialize(),

使用代号managers.permissions.add( Permission.objects.get(codename='add_user') )

现在,当检查用户是否具有特定权限时,我使用add_user即。 users.add_user前置

app_name

为什么会这样。是否可以使用self.assertTrue(self.user.has_perm('users.add_user')) get users.add_user权限。

当我尝试时,我得到:

django.contrib.auth.models.DoesNotExist: Permission matching query does not exist.

1 个答案:

答案 0 :(得分:3)

模型名称不是唯一的。您可以在其他应用中使用另一个updateDvStatus() { this._http.get(this.functionControlUrl).subscribe(() => { this._active = true; }, (error) => { this.errorStatusCode = error.status; this.errorPageService.setStatusCode(this.errorStatusCode); }) } 模型。在这种情况下,User会因Permission.objects.get(codename='add_user')而失败。因此使用类似的更安全:

MultipleObjectsReturned