我一直在尝试通过执行以下操作取消注册django中的网站管理员:
from django.contrib.sites.models import Site
admin.site.unregister(Site)
然而,这给了我一个错误,指出“网站”没有注册(即使它之前出现在管理员中)。
如果我尝试执行以下操作,则不会出现任何错误,但“网站”会保留在管理员中:
from django.contrib.sites.models import Site
admin.site.register(Site)
admin.site.unregister(Site)
我需要网站应用,并且无法在设置中将其从INSTALLED_APPS中删除。但管理员对我来说完全没用。 我在这里做错了什么想法?
谢谢!
答案 0 :(得分:4)
INSTALLED_APPS
设置的顺序非常重要。
当Django启动时,它将按照INSTALLED_APPS
中定义的顺序(https://docs.djangoproject.com/en/1.11/ref/applications/#how-applications-are-loaded)导入应用程序。在上面的示例中,您在Django有机会注册之前取消注册Site
。
除了非常仔细地阅读日志之外,您在排除故障方面无法做多少事情。在盯着他们看了一会儿之后,你或者成为Django的一员并且理解这一切,或者你像我们其他人一样来到这里; - )
我的INSTALLED_APPS
通常以django.contrib
个应用开始,然后是任何第三方应用,然后是底部的应用。如果我有一个非常的理由,我只会改变这个。