2010-11-13 42 views
1

在我的「根」模板我有這樣的事情django.contrib.auth意見和模板瓦爾

{% if special %} 
some_special_html 
{% endif %} 

special模板變種是由某些觀點插入模板。

問題是我需要password_change視圖來同時設置special模板var。

解決此問題的最佳方法是什麼?

目前,password_change視圖直接從urls.py稱爲:

url(r'^change_password/$', 'django.contrib.auth.views.password_change', 
    {'template_name': 'profile/password_change.html'}, 
    name='password_change'), 

回答

3

由於至少Django 1.3,password_change視圖確實需要額外的上下文,儘管文檔沒有提及它。

您可以通過使用url功能的kwargs參數傳遞額外的關鍵字參數給視圖,所以要獲得額外的背景下,做這樣的事情:

url(r'^password/change/$', 
    auth_views.password_change, 
    {'template_name': 'profile/password_change.html'}, 
    name='password_change', 
    kwargs=dict(extra_context={'special': 'special'}), 
    ), 
0

要麼將​​你的special變種加工成context_processor,或者只是包裹password_change權威性觀點與傳遞在你自己的觀點正確的上下文。

+0

好吧,我有包裝的看法,但不知道如何「傳遞正確的上下文」 – frnhr 2010-11-13 20:00:09

+0

'password_change'不帶任何額外的上下文。它雖然實例化了一個RequestContext。 – 2010-11-13 20:15:10

+0

@Ignacio:你說得對。 @Cek:我只是複製整個視圖代碼並進行所需的更改。 – sdolan 2010-11-13 20:22:33