2012-04-16 84 views
0

我想限制其管理界面的部分將會顯示給這名工作人員 - 例如,一個人可能只負責結算相關的項目,另一隻爲客戶的支持,並第三個可能具有完全訪問權限。非超級用戶訪問Django管理

我可以is_superuser設置爲True提供完全訪問權限,但我不認爲我想要的(我不想與訪問管理接口的所有工作人員是超級用戶)。

我可以允許工作人員通過將is_staff設置爲True來登錄管理界面,但是一旦登錄,工作人員就無法訪問任何內容 - 他們會看到「您沒有編輯任何權限」

我試過方法this question描述,但我得到了同樣的「您沒有權限」的結果:

class MyAdmin(admin.ModelAdmin): 
    def has_edit_permission(self, request): 
     return True 

有沒有辦法讓工作人員能夠訪問Django的部分管理界面而不超級用戶?

回答

3

有沒有這樣的東西作爲has_edit_permission。這是has_change_permission

有關三種權限方法的詳細信息,請參閱Django ModelAdmin docs

ModelAdmin.has_add_permission(self, request)

應該返回True如果添加對象是允許的,否則False

ModelAdmin.has_change_permission(self, request, obj=None)

應該返回True如果編輯obj是允許的,否則False。如果objNone,應該返回TrueFalse以指明是否此類型的對象的編輯一般是允許的(例如,False將被解釋爲意味着當前用戶不被許可編輯此類型的任何對象)。

ModelAdmin.has_delete_permission(self, request, obj=None)

應該返回True如果刪除obj是允許的,否則False。如果objNone,應該返回TrueFalse以指明是否此類型的刪除對象一般是允許的(例如,False將被解釋爲意味着當前用戶不被許可刪除此類型的任何對象)。

+0

不知道我從哪裏得到has_edit_permission,has_change_permission有效。 – Parand 2012-04-16 23:15:24

2

對於你想要做什麼,不會覆蓋has_change_permission - 只是給除了用戶(S)和/或用戶組(S)的相應權限(「可以改變XS」)檢查「是員工」。

+0

我試過了,沒有工作,可能是因爲我搞砸了細節。我會再試一次。 – Parand 2012-04-16 23:54:51

相關問題