我開發了一個django應用程序,該用戶根據資源級別權限註冊用戶並提供資源在此,我在模型和模板上使用django基本級權限,許可我在我的模型中設置權限元組,如下所示:如何通過使用請求用戶屬性獲取非超級用戶的用戶權限
class Model(AbstractUser):
group = models.ForeignKey(AppGroup)
class Meta:
permissions = (('view_app', 'user can view app'),)
我在創建類似上面的模型之後遷移模型。
現在爲了權限,我從admin創建了一個組,幷包括所有應用程序的查看/更改/刪除權限,使用該組我在表單類中生成了一個下拉列表。現在,用戶(管理員)可以根據選定的權限創建其他用戶,並且在成功註冊後可以成功登錄並訪問所有資源的新用戶,但是當我試圖訪問用戶權限時,這是多對多關係,使用類似於
class UserListView(ListView):
def get_queryset(self):
print(self.request.user.user_permissions.all())
return super(UserListView, self).get_queryset()
當我列出我的看法,它給我的關係錯誤(500錯誤): 關係views_list_user_permission不存在
現在,當我通過超級用戶訪問相同的觀點它給了我所有的權限,但從既不是超級用戶也不是員工的用戶那裏吐出上述錯誤。通過審查djancgo.contrib.auth.models
PermissionMixin類代碼,它似乎對我來說user_permissions m2m字段只能由超級用戶訪問,但我對此表示懷疑。所以這就是我正在做的,並得到了問題,請糾正我,如果我把這個錯誤的方式
延續到自己的自定義後端由我'user.user_permissions.add添加一些特定權限user_permission表(*燙髮) '。在通過user.user_permissions.all()訪問權限時,它給了我上面的錯誤。這是我不明白的。 – Shashank