我在Django 1.10中有一個儀表板應用程序。我想限制只有管理員用戶才能訪問此應用的視圖,如果用戶未登錄,則將其重定向到管理員的登錄頁面。在Django中只允許管理員用戶訪問視圖
這就是我想申請某種邏輯,以便只有管理員用戶可以看到帶有/儀表板開始鏈接/
URL(R「^儀表板/」,包括(「demo.dashboard .urls',命名空間= '儀表盤'))
我在Django 1.10中有一個儀表板應用程序。我想限制只有管理員用戶才能訪問此應用的視圖,如果用戶未登錄,則將其重定向到管理員的登錄頁面。在Django中只允許管理員用戶訪問視圖
這就是我想申請某種邏輯,以便只有管理員用戶可以看到帶有/儀表板開始鏈接/
URL(R「^儀表板/」,包括(「demo.dashboard .urls',命名空間= '儀表盤'))
你應該用user_passes_test裝飾:
def check_admin:
return user.is_superuser
@user_passes_test(check_admin)
def my_view(request):
...
你必須與裝飾無論是個人觀點裝修工,或者@staff_member_required
裝修工。也許是後者,文檔狀態:
如果是Django的管理編寫自定義視圖(或需要相同的授權檢查內置視圖使用),你可能會發現
django.contrib.admin.views.decorators.staff_member_required()
裝飾的有用替代login_required()
。
我的儀表板有很多視圖,大約20-25,我是否需要在每個視圖上應用裝飾器。沒有辦法,所以我可以在一個地方申請裝飾者? – ujjwalwahi
單獨宣佈它們更爲pythonic。我們有大約40或50個自定義管理視圖,這就是我們如何對待他們。它們也具有獨特的權限級別,因此每個視圖都用'@ staff_member_required'裝飾器和'@ superuser_required'或者'@permission_required('some_model.some_permission')'裝飾。更容易,我會更安全。 – YellowShark
感謝您的建議。 – ujjwalwahi