2017-05-25 197 views
4

我一直試圖做註銷了網站管理員在Django如下:Django管理註銷網站

from django.contrib.sites.models import Site 

admin.site.unregister(Site) 

但是這給了我一個錯誤,指出「網站」未註冊(即使它出現在管理員之前)。

如果我嘗試做以下我沒有得到任何錯誤,但「站點」停留在admin:

from django.contrib.sites.models import Site 

admin.site.register(Site) 
admin.site.unregister(Site) 

我需要的網站應用程序,不能把它拿出來INSTALLED_APPS的設置。然而,管理員對我來說完全沒用。 關於我在做什麼的錯誤在這裏?

謝謝!

+1

檢查了訂單或'INSTALLED_APPS'? 'django.contrib.sites'應用程序將不得不在設置 – Geotob

+0

之前的自己的應用程序*之前運行!謝謝,我不知道訂單的重要性。你甚至如何調試這樣的事情!? –

回答

4

您的INSTALLED_APPS設置的順序很重要。

當Django啓動時,它將按照它們定義的順序(https://docs.djangoproject.com/en/1.11/ref/applications/#how-applications-are-loaded)導入INSTALLED_APPS中的應用程序。在上面的例子中,在Django有機會註冊之前,您正在取消註冊Site

除了仔細閱讀日誌以外,在故障排除方面沒有太多可做的事情。盯着他們一段時間後你要麼成爲一個與Django和理解這一切,或者你來這裏和我們一樣的;-)

剩下我INSTALLED_APPS通常先從django.contrib的應用程序,那麼任何第三方應用程序,然後我的應用程序在底部。我只是改變這個,如果我有一個非常好理由。

+0

感謝您的快速響應,這使得現在更有意義! –