一个问题 Django reverse//

我在这里错过了真正基本的东西。

我正在尝试重用密码更改 django. 我有下面的 urls.py:


/r'^change-password/$', 'profile.views.change_password', {},'change_password'/,
url/r'^change-password-done/$', 'profile.views.password_change_done', name='django.contrib.auth.views.password_change_done'/,


并且在适当的 views.py:


from django.contrib.auth.views import password_change, password_change_done

def change_password/request,template_name="password_change_form.html"/:
"""Change Password"""
return password_change/request,template_name=template_name/

def password_change_done/request, template_name="password_change_done.html"/:
return render_to_response/template_name,//,context_instance= RequestContext/request//


但我收到以下错误:

反向
'django.contrib.auth.views.password_change_done'
有争议 '// '和
关键字参数' {} ' 未找到。

我看了这个来源并看到这条线:


post_change_redirect = reverse/'django.contrib.auth.views.password_change_done'/


如果我改变了我的记录 urls.py 到了下一个,我不会得到上面的错误:


url/r'^change-password-done/$', 'django.contrib.auth.views.password_change_done', name='anything'/,


但我很困惑,因为 reverse// 必须使用参数搜索 "name"? 我在这里遗漏了什么?

我用 django 1.2.3
已邀请:

八刀丁二

赞同来自:

乔希有一个解释,但你做错了。 如果你想覆盖
post_save_redirect

, 然后调用视图时将其传递为参数:


def change_password/request,template_name="password_change_form.html"/:
return password_change/request, template_name=template_name,
post_save_redirect=reverse/'my_done_page'//


厘米。
http://docs.djangoproject.com/ ... hange
.

诸葛浮云

赞同来自:

功能
reverse

不要按名称搜索。

http://docs.djangoproject.com/ ... verse
.

撤销/打印名称,URL配置=否,参数args =否,kwargs =否,current_app =否/
viewname - 这是函数的名称 /如果您使用此表单,则参考名称的函数或字符串版本 urlpatterns/, 要么是模板的名称 URL.

因此 , 制作
reverse/'django.contrib.auth.views.password_change_done'/

, 他将在正规表达式中寻找这个演示文稿的名称。
urls.py

并返回搜索关键字参数
name

, 如果不允许查看名称。

要回复问题请先登录注册