2017-08-31 90 views
0

我正在創建一個Django應用程序,其目標用於具有多個用戶的組織。所以在模型中,我有組織和用戶,組織應該是獨立的。Django中不同組織中的管理員,用戶和組

組織註冊的第一個用戶將是admin,註冊的下一個用戶將是員工。管理員可以創建用戶組(用戶組/角色),以在應用內設置員工的權限。

Django已經允許這個,但是一個Django管理員可以編輯所有的用戶權限嗎?有沒有辦法讓組織管理員只能查看和編輯其員工權限,而不能查看數據庫中的所有用戶?

+1

你是什麼意思的'誰只能查看並編輯其員工權限並且看不到數據庫中的所有用戶? – aircraft

+0

Django管理員可以查看所有用戶並在Django管理頁面中編輯他們的權限。我想有幾個不同的組織(用戶組)和每個組織的管理員只能看到該組織的用戶並編輯他們的權限 –

回答

1

你可以做的是重寫你的get_querysetModelAdmin

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') 
在您註冊類來管理,不要忘記做

admin.site.register(Class, ClassAdmin)

+0

謝謝,這是一個很好的竅門,並且會有一種方法可以保持一個全局超級管理員能夠查看和編輯一切? –

+1

是的,絕對..在這種情況下,你可以添加一個條件''if request.user.is_superuser:''return''qs.objects.all()'' – bobleujr

+0

好的,謝謝你的幫助到目前爲止,我的最後一個問題是是否有可能也限制顯示現有權限的查詢?我的意思是,我們有權限允許用戶管理組織的社交帳戶,所以我們只需要顯示管理正在編輯的當前用戶的組織的社交帳戶的權限。我希望這是明確的 –

相關問題