私のプロジェクトには次のミドルウェア設定があります。
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.locale.LocaleMiddleware',
'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',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
)
ローカル開発でlocal_settings.py
は、ミドルウェア設定を次のように再定義するモジュールをセットアップします。
MIDDLEWARE_CLASSES = (
'django.middleware.locale.LocaleMiddleware',
'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',
)
ここでは、開発のために、キャッシュ関連のミドルウェアを削除しています。
私のApacheデプロイでは、(to )とdictをlocal_settings.py
再定義するだけです。DEBUG
False
DATABASES
プロジェクトの本番仮想環境(Apacheサーバーが使用する仮想環境)にIPythonをインストールして、これを実行しました。
In [1]: from django.conf import settings
In [2]: settings.MIDDLEWARE_CLASSES
Out[2]:
('django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.locale.LocaleMiddleware',
'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',
'django.middleware.cache.FetchFromCacheMiddleware')
httpp://mysite.com/en/myview/
しかし、これにもかかわらず、を使用するURLにアクセスするには、URLに言語識別子を(として)入力する必要がありますfrom django.conf.urls.i18n.i18n_patterns
。そして、の機能の1つはdjango.middleware.locale.LocaleMiddleware
、言語コードプレフィックスなしでローカライズされたビューにアクセスするときに、ユーザーエージェントヘッダーからそれを推測し、プレフィックス付きのビューにリダイレクトすることを正確に行うことです。
何が起こっているのかをデバッグする方法は?