我真的不想問這個問題,但關於此問題的不同教程和文檔中的信息量對我來說是壓倒性的。Django,在管理員中設置用戶模型的角色
我有三類用戶:Admin
,Guide
,User
:
Admin
可以做到在管理頁面什麼。Admin
可以改變簡單Users
到Guides
Guide
只能創建GuideTour
模型對象,並只管理自己的旅遊。User
無法登錄管理頁面。
如何在我的模型定義中設置這些用戶,以便在我的管理頁面中獲得這種角色?
難道是單表繼承模式嗎?
我真的不想問這個問題,但關於此問題的不同教程和文檔中的信息量對我來說是壓倒性的。Django,在管理員中設置用戶模型的角色
我有三類用戶:Admin
,Guide
,User
:
Admin
可以做到在管理頁面什麼。Admin
可以改變簡單Users
到Guides
Guide
只能創建GuideTour
模型對象,並只管理自己的旅遊。User
無法登錄管理頁面。如何在我的模型定義中設置這些用戶,以便在我的管理頁面中獲得這種角色?
難道是單表繼承模式嗎?
如果你使用默認的Django的身份驗證系統(django.contrib.auth
),您可以創建用戶組,並設置最在管理界面這些權限(首頁>認證和授權>組)的:
「只管理他自己的旅程」的事情稍微複雜一點 - 您可能希望在Tour
模型中有ForeignKey
字段,並將用戶鏈接到創建對象(並檢查request.user
是否爲「正確」用戶每個編輯嘗試)...
或者定義一個具有所需邏輯的方法。看到這個:Object Ownership in Django
我不認爲這是值得的。在自定義管理頁面中,您可以使用裝飾器來訪問方法,並且只有在用戶具有相關權限時才使用模板中的基本if語句來呈現內容。與修改默認管理頁面的麻煩相比,它具有非常大的靈活性。 –
@almostabeginner:是的,你說得對。取決於他想要做多少修改 - 自定義管理員可能更容易。 – helb
我建議創建自己的管理頁面,而不是使用Django的默認值。當你創建自己的管理頁面時,你有更多的自定義權力,並且在我看來,與修改管理頁面相比,它的工作容易得多。 –