2012-01-25 2 views
0

두 개의 템플릿을 만들었습니다 (passwd 변경, passwd 변경 완료). 그리고 암호를 변경하려고했습니다. 그런 다음 암호가 변경되었습니다. 하지만 성공 페이지가 표시되지 않습니다. 오직 password_change 페이지 만 다시로드되었습니다. 나는 모른다. 무엇이 문제인가?django 등록 템플릿

한 번 더, 어디서 등록 폴더인지 모르겠다. 구름 당신이 그것을 도울 수 있습니까? 감사합니다. 당신이 암호를 변경 할 때, 당신이 기능을 사용하고

url(r'^accounts/chpasswd/?', 'django.contrib.auth.views.password_change', {'template_name':'password_change.html'}), 
url(r'^accounts/chpasswd/done/?', 'django.contrib.auth.views.password_change_done', {'template_name':'password_change_done.html'}), 

답변

1

, 그 응용 프로그램의 views.py 파일에 대부분의 아마. 함수가 끝나면 대부분 데이터를 반환 할 것이고 가장 자주 템플릿에 반환합니다.

다음은 예입니다 :이 경우

return render_to_response('myapplication/frontend.html', {'profile': profile_obj}, 
     context_instance=RequestContext(request)) 

, /myproject/myapp/templates/myapp/frontpage.html에 아마 템플릿 frontend.html에 변수 profile_obj의 값을 반환하는 것입니다. 그런 다음 템플릿 파일에서 {{ profile.instance }}을 호출하여 해당 객체의 인스턴스에 액세스 할 수 있습니다.

이 기능에 대한 자세한 내용 can be found here.

이제 urls.py 파일은 원하는 응용 프로그램에 요청을 전달하는 데 사용되는 파일입니다. 예 :

url(r'^accounts/chpasswd/?', 
    'django.contrib.auth.views.password_change', 
    {'template_name':'password_change.html'}), 
url(r'^accounts/chpasswd/done/?', 
    'django.contrib.auth.views.password_change', 
    {'template_name':'password_change_done.html'}), 

그리고 이것은 (주어진 당신의 웹 사이트가 www.mysite.com에있다) 다음과 같은 의미

하나가 www.mysite.com/accounts/chpasswd/을 열고, django.contrib.auth 모듈의보기에서 기능 password_change을 실행하고있는 경우 함수는 유익합니다 (어떤 종류의 값을 반환합니다). password_change.html

django.contrib.auth 모듈은 로그인과 로그 아웃, 암호 기능 등과 같은 템플릿에 사용됩니다.

1) 템플릿이 장고 그들을 위해 찾고있는 장소에, 그래서 settings.py에서 TEMPLATE_DIRS 설정을 확인해야합니다

지금, 당신은이 일을 알고 있어야합니다.

2) 나는 장고가 이미 미리 정의 된 템플릿을 가지고 있다고 믿지만 (100 % 확실하지는 않습니다). Django의 기본 템플릿 중 하나와 동일한 템플릿 이름을 사용하는 경우 django.contrib.admin에서 INSTALLED_APPS으로 시작해야합니다. 그렇지 않으면 django 템플릿이 표시됩니다 (django admin과 동일한 디자인을 공유 함).

=================================== 질문 이후 편집은 편집 된

도 과 같이, urls.py에서 순서를 변경

시도 :

url(r'^accounts/chpasswd/done/?', 
    'django.contrib.auth.views.password_change_done', 
    {'template_name':'password_change_done.html'}), 

url(r'^accounts/chpasswd/?', 
    'django.contrib.auth.views.password_change', 
    {'template_name':'password_change.html'}), 
+0

1. 내 템플릿은 TEMPLATE_DIRS입니다. 2. 내 INSTALLED_APPS 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.사이트 ' 'django.contrib.messages ', 'django.contrib.staticfiles ', 'django.contrib.humanize ', 'django.contrib.admin ', 'chart_tools ', 'medics.sbox ' , 'registration', – user1161599

+0

먼저. account/chpasswd /에서 비밀번호를 변경하려고합니다. 그런 다음 URL을 accounts/chpasswd/done /으로 변경하십시오. URL이 변경되었습니다. 그러나 웹 페이지는 변경되지 않았습니다. 계정/chpasswd/페이지 만 다시로드되었습니다. 실제 암호 변경에 성공했습니다. INSTALLED_APPS에서 – user1161599

+0

을 사용하려면 'registration'을 목록의 첫 번째 항목으로 지정하십시오. 그 후,'/ mydjangoproject/registration/templates/registration/password_change_done.html'을 엽니 다. – Milos