我使用Django 1.3
和python 2.7
。我使用的是Django管理應用程序。我想要的是當superuser
登錄時,它應該顯示爲admin/index.html,所有模型都是默認行爲,但如果任何其他用戶登錄,這是不是超級用戶,那麼它應該顯示一個完全不同的模板與我的數據(如'abc.html')。我該怎麼做才能做到這一點?我想我需要重寫一些管理視圖做這但不知道?覆蓋管理員意見 - Django
請help.If您想了解更多信息,PLZ評論:)
我使用Django 1.3
和python 2.7
。我使用的是Django管理應用程序。我想要的是當superuser
登錄時,它應該顯示爲admin/index.html,所有模型都是默認行爲,但如果任何其他用戶登錄,這是不是超級用戶,那麼它應該顯示一個完全不同的模板與我的數據(如'abc.html')。我該怎麼做才能做到這一點?我想我需要重寫一些管理視圖做這但不知道?覆蓋管理員意見 - Django
請help.If您想了解更多信息,PLZ評論:)
您使用其他權限規則創建了修改的AdminSite類定義。
class SuperUserAdminSite(AdminSite):
def has_permission(self, request):
return request.user.is_active and request.user.is_staff and request.user. is_superuser
現在您可以創建兩個AdminSite對象,一個用於普通用戶,一個用於超級用戶。
您可以在兩個管理站點的URL中有兩個路徑。
超級用戶可以使用兩種路徑。
普通用戶只能使用URL中的普通用戶路徑。
https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#adminsite-objects
你必須改變管理界面的視圖。 Django文檔詳細提到。如果您有任何錯誤,請檢查https://docs.djangoproject.com/en/1.3/ref/contrib/admin/,然後請回寫一些代碼詳細信息。
我會創建一箇中間件來檢查用戶是否是超級用戶。如果用戶不是超級用戶,則將他/她重定向到自定義管理頁面而不是默認用戶頁面。
class SuperUserMiddleware(object):
def process_request(self, request):
user = request.session.user
if not user.is_superuser:
return HttpResponseRedirect(NON_SUPERUSER_URL)
...
我知道但是哪個視圖登錄視圖? – Anshul 2012-02-10 11:22:41