私は 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 のフードの下で何が起こっているのか、そしてなぜそれが好きなディレクトリにある場合にのみテンプレートを使用するのかを説明してもらえますか?!