Зарегистрированные модели не отображаются в админке

Я добавил модель для администратора через admin.site.registerи не отображается в админке. Поскольку администратор так "это просто работает", я понятия не имею, как это отладить. Указатели?

9 ответов

Решение

После добавления и регистрации вашего администратора:

# 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

В такой ситуации также рекомендуется проверять, есть ли у пользователя, вошедшего в административную панель, права на управление такой моделью. Если они это сделают, вы можете изменить свой код для доступа к функциям от имени пользователя root.

Если есть сомнения, выключите сервер, syncdb, запустите сервер.

У меня есть опыт, что иногда после изменения admin.py dev-сервер не будет перезапущен. в таком случае touch settings.py помогает.

Я думаю, что контрольный список в ответе Тьерри почти окончательный, но убедитесь, что 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.

Вы добавили приложение в свои установленные приложения? Это случилось со мной как один, так и два раза.:) В противном случае нам было бы полезно увидеть код, который поможет вам.

Также убедитесь, что нет никаких синтаксических ошибок в вашем admin.py или чем-либо еще. Это может привести к тому, что приложение не будет зарегистрировано на AdminSite.

Я столкнулся с той же проблемой, но это было немного сложнее, чем у вас.

Предположим, у вас есть проект с пятью и более приложениями. Для меня более очевидно регистрировать все модели в одном файле admin.py, поэтому я решил сделать это в одном месте - в основном каталоге. Конечно, это не было приложение, поэтому ни одна из моделей не появилась на странице администратора.

Закомментируйте некоторые строки в urls.py см. документы для более подробной информации

admin.autodiscover()

urlpatterns = patterns('',
    ('^admin/', include(admin.site.urls)),
)
Другие вопросы по тегам