2017-08-31 16 views
0

私はDjangoアプリケーションを作成しており、複数のユーザーを持つ組織を対象としています。モデルでは組織とユーザーがあり、組織は独立している必要があります。Djangoの異なる組織の管理者、ユーザー、グループ

サインアップする組織の最初のユーザーは管理者になり、サインアップする次のユーザーは従業員になります。管理者は、ユーザーグループ(ユーザーグループ/ロール)を作成して、アプリケーション内の従業員のアクセス許可を設定できます。

Djangoは既にこれを許可していますが、Django管理者はすべてのユーザーを正しく編集できますか?従業員の権限のみを表示および編集し、データベース内のすべてのユーザーを表示することはできない組織単位のマネージャを持つ方法はありますか?

+1

従業員の権限を参照して編集し、データベース内のすべてのユーザーを表示しないでください.' – aircraft

+0

Django管理者は、Django管理者ページですべてのユーザを表示し、権限を編集することができます。私はいくつかの異なる組織(ユーザーのグループ)と組織単位の管理者だけがこの組織のユーザーを参照して権限を編集できるようにしたいと考えています –

答えて

1

何を行う可能性はオーバーライドすることで、あなたのget_queryset

class ClassAdmin(admin.ModelAdmin): 
    def get_queryset(self, request): 
     qs = super(ClassAdmin, self).get_queryset(request) 
     if your_condition: 
      return qs.filter(b='bar') 
     return qs.filter(b='foo') 

、やることを忘れないでください、あなたが管理者に自分のクラスを登録ModelAdminあなたは誰だけでし `でどういうadmin.site.register(Class, ClassAdmin)

+0

ありがとう、それは良いトリックです。すべてを表示して編集するには? –

+1

はい、間違いなく..この場合、条件を追加することができます。request.user.is_superuser: '' return '' qs.objects.all() '' – bobleujr

+0

これまでのご協力ありがとうございました。既存の権限を表示するクエリを制限することも可能ですか?つまり、ユーザーが組織のソーシャルアカウントを管理できる権限があるので、編集中のユーザーの組織のソーシャルアカウントを管理する権限のみを表示する必要があります。私はそれが明確であることを望む –

関連する問題