Когда вы меняете пароль, вы используете функцию, которая, скорее всего, находится в файле views.py вашего приложения.Когда эта функция заканчивается, она, скорее всего, вернет некоторые данные и чаще всего возвращает их в шаблон.
Вот пример:
return render_to_response('myapplication/frontend.html', {'profile': profile_obj},
context_instance=RequestContext(request))
В этом случаеон будет возвращать значение переменной profile_obj
в шаблон frontend.html
, который, вероятно, находится в /myproject/myapp/templates/myapp/frontpage.html
.После этого вы можете получить доступ к экземплярам этого объекта, вызвав {{ profile.instance }}
из вашего файла шаблона.
Подробнее об этой функции можно найти здесь .
Теперь, 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/
, запустить функцию password_change
из представлениямодуля django.contrib.auth
, и если эта функция плодотворна (возвращает какое-то значение), пусть она возвращает значение в шаблон с именем password_change.html
Модуль django.contrib.auth используется для таких вещей, какчто: вход и выход, функции паролей и тд.
Теперь вы должны знать о 2 вещах:
1) ваши шаблоны должны находиться в том месте, где django будет их искать, поэтому проверьте настройку TEMPLATE_DIRS
в settings.py.
2) Я считаю (но не уверен на 100%), что у Django уже есть такой предопределенный шаблон.Если у вас такое же имя шаблона, как и у одного из шаблонов Django по умолчанию, убедитесь, что ваше приложение находится перед django.contrib.admin
в INSTALLED_APPS
, иначе вам будет показан шаблон django (такой же дизайн, как у администратора django).
=========================================
РЕДАКТИРОВАТЬ с момента вопросатоже был отредактирован
Попробуйте изменить порядок в 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'}),