В консоли администратора я могу добавлять и редактировать пользователей через стандартное приложение авторизации и сайты через стандартное приложение сайта, но если я пытаюсь добавить группу, я получаю сообщение об ошибке 404, в котором отсутствует обычный список URLconf:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/auth/group/add/
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
В базе данных нет групп, и я могу зайти на http://127.0.0.1:8000/admin/auth/group/
и увидеть пустой список просто отлично.
Для плоских страниц в базе данных есть записи, и все SITE_ID соответствуют моим файлам настроек. В этом случае, однако, и http://127.0.0.1:8000/admin/flatpages/flatpage/
(который должен их перечислить), и http://127.0.0.1:8000/admin/flatpages/flatpage/add/
выдают 404 ошибки без информации URLconf.
Общественная сторона плоских страниц работает. Весь контент подается как ожидалось. Вопрос только в консоли администратора.
Вот содержимое моего файла urls.py:
from django.conf.urls.defaults import *
from django.conf import settings
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^shortener|g|p/', include('charon_sheet.shortener.urls')),
(r'^admin/doc/', include('django.contrib.admindocs.urls')),
(r'^admin/', include(admin.site.urls)),
(r'^', include('charon_sheet.ghosts.urls')),
)
if settings.DEBUG:
urlpatterns += patterns('',
(r'^public/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, 'show_indexes':True }),
)
У меня нет пользовательских приложений, которые касаются интерфейса администратора, и поэтому нет файлов admin.py.
Вот мое промежуточное ПО:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
)
Мои шаблонные контекстные процессоры:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.media',
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',
'charon_sheet.context_processors.sharing_url_context_processor',
)
И мои установленные приложения:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.flatpages',
'django.contrib.messages',
'charon_sheet.shortener',
'charon_sheet.ghosts',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
'django.contrib.admindocs',
)
Я пробовал следующее:
- Изменение порядка urlpatterns (в частности, размещение charon_sheet.ghosts.urls над строками администратора)
- Удаление обработчика пользовательского контекста
- Размещение FlatpageFallbackMiddleware в различных местах в списке промежуточного ПО
- Помещение моих приложений ниже приложений администратора в списке INSTALLED_APPS
- Очистка таблиц базы данных Flatpage
- Переустановка Django
Ничто из этого не изменило ошибки вообще.
Это использует Django 1.3 и python 2.6 и происходит как на стандартном dev-сервере, так и через Passenger в более производственной среде.
У меня заканчиваются идеи, чтобы примерить это. Есть идеи? Надеюсь, это что-то простое.