0

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

4

1 に答える 1