Зарегистрированные модели не отображаются в админке - PullRequest
16 голосов
/ 03 декабря 2009

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

Ответы [ 8 ]

39 голосов
/ 03 декабря 2009

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

# 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
13 голосов
/ 16 мая 2012

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

7 голосов
/ 03 декабря 2009

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

4 голосов
/ 04 декабря 2009

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

2 голосов
/ 04 декабря 2009

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

1 голос
/ 03 декабря 2009

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

1 голос
/ 03 декабря 2009

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

0 голосов
/ 06 декабря 2009

закомментируйте некоторые строки в urls.py подробности см. В документах

admin.autodiscover()

urlpatterns = patterns('',
    ('^admin/', include(admin.site.urls)),
)
...