django注册模板

时间:2012-01-25 04:44:49

标签: django passwords registration

我制作了两个模板(更改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'}),

1 个答案:

答案 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'}),