Почему это 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 ответа:
Обычно вы вызываете
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
Это должно сработать