我通过admin.site.register
向管理员添加了一个模型,但它没有显示在管理员中。由于管理员是如此“它只是工作”,我不知道如何调试它。指针?
答案 0 :(得分:39)
添加并注册管理员后:
# app/admin.py
class YourModelAdmin(admin.ModelAdmin):
pass
admin.site.register(YourModel, YourModelAdmin)
确保您的应用在项目中settings.py
:
# settings.py
INSTALLED_APPS = (
# other apps ...
'app',
)
如果您尚未这样做,请同步您的项目:
python manage.py syncdb
重新启动您的服务器CTRL-C
:
python manage.py runserver
答案 1 :(得分:13)
在这种情况下,检查登录管理面板的用户是否有权管理此类模型也是一种很好的做法。如果他们这样做,那么您可以更改代码以root身份访问这些功能。
答案 2 :(得分:7)
如有疑问,请关闭服务器,syncdb,启动服务器。
答案 3 :(得分:4)
我有经验,有时在更改admin.py之后,dev-sever将不会重新启动。在这种情况下touch settings.py
有帮助。
答案 4 :(得分:2)
我认为Thierry答案中的清单几乎是确定的,但要确保urls.py
包含admin.autodiscover()
来加载INSTALLED_APPS
admin.py模块。
# urls.py
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
('^admin/', include(admin.site.urls)),
)
django docs中的更多信息。
答案 5 :(得分:1)
您是否已将应用程序添加到已安装的应用程序中?这发生在我身上一两次。 :)否则,看到帮助你的代码对我们很有用。
答案 6 :(得分:1)
还要确保admin.py或其他内容中没有语法错误。这可能导致应用无法向AdminSite注册。
答案 7 :(得分:-1)
注释urls.py
中的某些行,请参阅文档以获取更多详细信息
admin.autodiscover()
urlpatterns = patterns('',
('^admin/', include(admin.site.urls)),
)