2012-02-20 81 views
3

在管理控制檯中,我可以通過標準網站應用通過標準身份驗證應用和網站添加和編輯用戶,但如果嘗試添加組,我會收到404錯誤,缺乏平時的URL配置清單:在添加組頁面或FlatPage時未在Django admin中找到頁面

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', 
) 

我的模板context處理器:

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', 
) 

我已經試過如下:

  • 改變URL模式的卸下自定義上下文處理器
  • 把FlatpageFallbackMiddleware在各種各樣的地方在中間件列表
  • 把下面我的應用程序的順序(特別是把管理員線上面的charon_sheet.ghosts.urls)
  • 在INSTALLED_APPS列表
  • 清除簡單頁面數據庫表的管理應用
  • 重新安裝的Django

這些都沒有改變錯誤。

這是使用Django 1.3和python 2.6,並且在標準的dev服務器上以及在類似產品的環境中通過Passenger進行。

我想盡一切辦法嘗試。有任何想法嗎?希望這很簡單。

+0

您是否嘗試從urls.py和INSTALLED_APPS中移除charon_sheet的所有實例? – 2012-02-20 21:39:06

+0

@ dan-klasson:'如此,它沒有任何區別。 – 2012-02-20 22:22:43

+0

你有沒有嘗試刪除所有的FlatpageFallbackMiddleware(或註釋掉)?這似乎是你沒有看到URL模式列表的原因,並可能給出真正的錯誤粘合。 – ilvar 2012-02-21 02:02:10

回答

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文件包含在管理模式下方解決了問題。