Почему это admin.py никогда не заряжали?


Я настройка приложения администрирования Django проекта.

Я создал admin.py файлы в каждом из моих приложений (так же, как и в предыдущих проектах). Однако модули admin.py не загружаются. Мои модели не зарегистрированы, и я не могу взломать код с помощью pydevd.settrace().

Если я перемещаю свой код администратора в конец models.py, все работает как ожидалось, модели регистрируются в admin, и код запускается (я могу пройти через него с помощью pydevd.settrace()).

Итак, это не удается -

my_project_app
    __init__.py
    cart
        __init__.py
        models.py
        admin.py

Но когда я добавляю свой код в конец models.py файл все работает нормально -

from django.contrib import admin

class CartAdmin(admin.ModelAdmin):
    pass

admin.site.register(Cart, CartAdmin)

Очевидно, что я буду настраивать администратора, поэтому я не хочу, чтобы все было в одном модуле. Как заставить мой файл admin.py работать? И почему они перестали работать (это первый раз, когда я использовал django 1.5 - не уверен, что это уместно)

2 3

2 ответа:

Обычно вы вызываете admin.autodiscover() в вашем urls.py и он загружает все:

# urls.py
from django.conf.urls import patterns, include
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),
)
Поскольку вы должны сделать это, прежде чем пытаться использовать admin.site.urls, это лучшее место, чтобы назвать его.

В вашем admin.py файл, в который вы должны импортировать свои модели

from cart.models import Cart

Если все же это не сработало, то проверьте, включили ли вы

'django.contrib.admin',

В списке настроек файла installed_apps затем в файле urls включите

admin.autodiscover()

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

Беги manange.py syncdb

Беги manage.py runserver

Проверка 127.0.0.1: 8000 / admin

Это должно сработать