ユーザーを登録し、リソースレベルの権限に基づいてリソースを与えるdjangoアプリケーションを開発しました。これは私のモデルとテンプレートに基本レベルのアクセス許可を使用しています。許可私のモデルに許可タプルを設定しました:要求ユーザー属性を使用して非管理者ユーザーのユーザー権限を取得する方法
class Model(AbstractUser):
group = models.ForeignKey(AppGroup)
class Meta:
permissions = (('view_app', 'user can view app'),)
と私は上記のようなモデルを作成した後に私のモデルを移行します。
権限のために、adminからグループを作成し、そのグループを使用してフォームクラスでドロップダウンを生成したすべてのアプリケーションの表示/変更/削除の権限を含めました。ユーザー(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.all()によってアクセス権にアクセスすると、上記のエラーが表示されます。これは私が理解していないものです。 – Shashank