我制作了两个模板(更改passwd,更改passwd完成)。 而且,我试图改变密码。然后,密码改变了。 但是,没有显示Success页面。只重新加载了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'}),
答案 0 :(得分:1)
当您更改密码时,您正在使用一个函数,这很可能在您的应用程序的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 }}
来访问该对象的实例。
有关此功能的更多信息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/
时,从password_change
模块的视图中运行函数django.contrib.auth
,如果该函数富有成效(返回某种值),则让它返回值为password_change.html
django.contrib.auth模块用于这样的事情:登录和注销,密码功能等。
现在,你应该知道两件事:
1)您的模板必须位于django将要查找的位置,因此请检查settings.py中的TEMPLATE_DIRS
设置。
2)我相信(但并非100%肯定)Django已经预定义了这样一个模板。如果您的模板名称与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'}),