2011-10-28 2 views
2

URL 핸들러에 auth_views.password_change하는 extra_context를 전달하는 방법 :나는 이와 같은 변화 암호에 대한 URL 핸들러를

     url(r'^password/change/$', 
          auth_views.password_change, 
          {'template_name' : 'account/password/password_change_form.html'}, 
          name='auth_password_change'), 

모두가 좋은, 그리고 내 템플릿을로드하고, 작품을 변경 비밀번호는 예상대로 . 그러나 내 템플릿은 request.user에 액세스해야합니다. request 개체는 기본적으로 auth_views.password_change보기의 템플릿에서 템플릿으로 전달되지 않습니다.

auth_views.password_change보기가 템플릿에 전달되는 추가 컨텍스트로 전달 될 수 있다는 것을 알고 있습니다. 난 그냥 내 URL 처리기에서 어떻게 해야할지 모르겠다.

나는 단지 auth_views.password_change 주위를 감싸는 또 다른보기를 작성할 수 있다는 것을 알고 있지만, URL 처리기 내에서 바로 가기 방법이 있는지 궁금합니다.

extra_context으로 현재 request 개체를 전달하기 위해 현재 URL 처리기를 수정하는 방법을 보여 줄 수 있습니까? auth_views.password_change보기?

+0

예를 들어 나도 마찬가지입니다. (나는 v0.7을 사용하고있다.) 워드 프로세서를 읽고 코드를 보면, registration.urls에 묻혀있는 url() 호출에 전달 된 사전에 'extra_context'를 추가하는 것으로 보인다. 위의 작업을 수행하기 위해 분산 소스 코드를 수정하지 않아도된다면, 내 자신 만의 urls.py에서 이식편으로 남은 것 같습니다 : (r '^ accounts /', include ('registration.urls')). 하지만 거기에 "extra_context"를 어떻게 전달합니까? "include()"에 구문을 사용합니까? 나는 그것을 발견 할 수 없었다. –

답변

2

일반적으로 urlconf에서 그렇게하지만 - urls.py는 요청에 액세스 할 수 없기 때문에 request.user을 extra_context에 전달할 수 없습니다. 당신은 설정에서 CONTEXT_PROCESSORS 목록에서 제거하지 않는 한, django.contrib.auth.context_processors.auth에 의해 전달 자동으로 거기 user 객체 (이 있음을 의미 -

그러나 password_change 모든 내장 된 뷰와 같은 템플릿을 렌더링하는 RequestContext를 사용합니다. py).