私は Django を初めて使用し、動作に混乱しており、期待どおりに動作しない理由を理解しようと頭を悩ませています。
パスワード変更 ( ) 用にテンプレートをカスタマイズしてpassword_change_form.html
おり、それを の下のアプリケーション テンプレート ディレクトリに配置していますregistration
。
私はdjango-registrationを使用しています。私settings.py
のINSTALLED_APPSには、デフォルトのアプリがデフォルトの順序('django.contrib.auth'
など...)、私のアプリ、およびregistration
. 管理者が有効になっています。Django が INSTALLED_APPS 変数に設定された順序でテンプレートを検索することはわかっています。
私のプロジェクトurls.pyには
urlpatterns = patterns('',
url(r'', include('website.urls', namespace="website")),
url(r'^admin/', include(admin.site.urls)),
(r'^accounts/', include('registration.backends.default.urls')),
)
urlpatterns += staticfiles_urlpatterns()
私のアプリケーションurls.pyには
urlpatterns = patterns('',
url(r'^$', views.home, name='home'),
url(r'^accounts/profile/password/change/$',
'django.contrib.auth.views.password_change',
{'template_name': 'registration/password_change_form.html'},
name='edit_password'),
)
私の混乱は、template_name
セットをDjangoのままにすると、カスタムテンプレートではなく'registration/password_change_form.html'
、パスワード変更用のデフォルトの管理フォームが表示されることです。
という名前のアプリ テンプレートの下にディレクトリを作成し、auth
この場所にテンプレートをコピーしました。template_name
を'auth/password_change_form.html'
Djangoに変更すると、テンプレートが表示されます。
Django は私のテンプレートを場所で使用するという私の指示に従ってregistration
いないため、混乱していますが、場所にある場合はそうしますauth
。
Django 1.5 のフードの下で何が起こっているのか、そしてなぜそれが好きなディレクトリにある場合にのみテンプレートを使用するのかを説明してもらえますか?!