3

管理コンソールでは、標準の認証アプリを使用してユーザーを追加および編集し、標準のサイト アプリを使用してサイトを追加および編集できますが、グループを追加しようとすると、通常の URLconf リストがない 404 エラーが表示されます。

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/URLconf 情報が指定されていない 404 エラーが発生します。

フラットページの公開側は機能します。すべてのコンテンツが期待どおりに提供されます。問題は管理コンソールのみです。

私の 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 を使用しており、標準の開発サーバーと、より本番環境に似た環境の Passenger の両方で発生しています。

これを試すアイデアが不足しています。何か案は?ここでは、それが単純なものであることを願っています。

4

1 に答える 1

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

最後のパターンは、特定の URL をむさぼり食うものでした。charon_sheet.shortener.urlsファイルのインクルードを管理パターンの下に移動すると、問題が解決しました。

于 2012-03-01T15:24:01.337 に答える