шаблон регистрации Django - PullRequest
0 голосов
/ 25 января 2012

Я сделал два шаблона (изменение passwd, изменение passwd сделано).И я попытался изменить пароль.затем пароль изменился.Но страница «Успех» не отображается. Перезагружается только страница «password_change».Я не знаю, что такое проблемы?

Еще один, я не знаю, где находится папка регистрации.Облако тебе это поможет?Спасибо.

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 Ответ

1 голос
/ 25 января 2012

Когда вы меняете пароль, вы используете функцию, которая, скорее всего, находится в файле 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'}),
...