Я добавил модель для администратора через admin.site.register
, и она не отображается в admin. Поскольку администратор так "Он просто работает", я понятия не имею, как его отладить. Указатели?
Зарегистрированные модели не отображаются в admin
Ответ 1
После добавления и регистрации администратора:
# 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
Ответ 2
В такой ситуации также является хорошей практикой проверять, имеет ли пользователь, входящий в админ-панель, права на управление такой моделью. Если они это сделают, вы можете изменить свой код для доступа к функциям с правами root.
Ответ 3
Если есть сомнения, выключите сервер, syncdb, запустите сервер.
Ответ 4
У меня есть опыт, который иногда после изменения admin.py dev-sever не перезапускается. в этом случае touch settings.py
помогает.
Ответ 5
Я думаю, что контрольный список в ответе Тьерри почти окончательный, но убедитесь, что 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.
Ответ 6
Вы добавили приложение в свои установленные приложения? Это случилось со мной как один, так и два раза.:) В противном случае нам было бы полезно увидеть код, который поможет вам.
Ответ 7
Также убедитесь, что в вашем admin.py нет никаких синтаксических ошибок. Это может привести к тому, что приложение не сможет зарегистрироваться в AdminSite.
Ответ 8
закомментируйте некоторые строки в urls.py
, см. документы для более подробной информации
admin.autodiscover()
urlpatterns = patterns('',
('^admin/', include(admin.site.urls)),
)