在管理控制台中,我可以通过标准的站点应用程序通过标准的auth app和站点添加和编辑用户,但如果我尝试添加组,则会收到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/
并查看空列表。
对于flatpages,数据库中有条目,并且所有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',
)
我尝试了以下内容:
这些都没有改变错误。
这是使用Django 1.3和python 2.6,并且在标准的开发服务器上和通过Passenger在类似生产的环境中发生。
我已经没有想法尝试这个了。有任何想法吗?这里希望它很简单。
答案 0 :(得分:1)
正如预期的那样,这是一个URL模式问题。以下是charon_sheet.shortener.urls
文件的内容:
urlpatterns = patterns(
'',
url(r'shorten/(?P<app_prefix>.*?)/$',
view = shorten,
name = 'shorten'
),
url(r'(?P<id_hex>[a-fA-F0-9]+)(/)?$',
view = expand,
name = 'expand'
)
)
最后一种模式吞噬了某些网址。将charon_sheet.shortener.urls
文件包含在管理模式下方可以解决问题。