9

Django の管理用の「パスワードの変更」ページ (change_password.html) をオーバーライドしたいと考えています。そのため、Django の「/contrib/admin/templates/registration/password_change_form.html」をプロジェクトの「/templates/admin/registration/password_change_form.html」ディレクトリに配置しました。残念ながら、これはうまくいかないようです。

この時点で、私は困惑しています。Django の /contrib/auth/urls.py ファイル (「django.contrib.auth.views.password_change」への管理者変更パスワード呼び出しを指示する) と関係があると推測していますが、管理者テンプレートの変更は些細なことです。これまでのところ、これが追随しないことに驚いています。

何かご意見は?

4

3 に答える 3

23

以下を使用する必要があります。

templates/registration/password_change_form.html

それでも Django の Admin テンプレートが表示される場合は、テンプレートの順序を変更する必要がありますINSTALLED_APPS(たとえば、テンプレートがアプリ内にある場合、このアプリは の前django.contrib.adminに表示される必要がありますINSTALLED_APPS) 。

https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.views.password_change

于 2012-09-13T15:08:34.040 に答える
10

ソースをざっと見てみると、テンプレートを次の場所に配置する必要があることがわかります。

/templates/registration/password_change_form.html

注意: そこには「admin/」はありません。

于 2009-01-15T16:46:58.647 に答える
1

私は同じ問題を抱えていました。django テンプレート ローダーがどのように機能するかが重要だと思います。

次のようなものを使用している場合

TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)

TEMPLATE_DIRS = ( os.path.join(PROJECT_DIR, 'templates'), ) のようなもので

次に、localstore/templates/registration/password_change_form.html が機能することを期待します (localstore は、ローカルの satchmo オーバーライドの名前です)。ただし、管理者が上書きしているため、password_change_form には適用されません。したがって、次のようになります。

  1. ファイル ローダー テンプレート ディレクトリ (例: テンプレート)
  2. (ジャンゴ管理テンプレート)
  3. ローカル アプリ テンプレート ディレクトリ

したがって、私にとっての解決策は、登録テンプレートのオーバーライドを localstore/templates ディレクトリからプロジェクトの /templates ディレクトリに移動することでした。

于 2010-12-01T05:36:02.790 に答える