2013-05-22 54 views
1

我遵循这个代码:的Django忘记密码

http://drumcoder.co.uk/blog/2010/apr/09/django-reset-password/

但是当我跑我有这样的错误:

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 
    115.       response = callback(request, *callback_args, **callback_kwargs) 
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view 
    91.      response = view_func(request, *args, **kwargs) 
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/views.py" in password_reset 
    161.    form.save(**opts) 
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/forms.py" in save 
    260.    email = loader.render_to_string(email_template_name, c) 
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in render_to_string 
    170.   t = get_template(template_name) 
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in get_template 
    146.  template, origin = find_template(template_name) 
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in find_template 
    135.    source, display_name = loader(name, dirs) 
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in __call__ 
    43.   return self.load_template(template_name, template_dirs) 
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in load_template 
    49.    template = get_template_from_string(source, origin, template_name) 
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in get_template_from_string 
    157.  return Template(source, origin, name) 
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in __init__ 
    125.   self.nodelist = compile_string(template_string, origin) 
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in compile_string 
    153.  return parser.parse() 
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in parse 
    274.      compiled_result = compile_func(self, token) 
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in autoescape 
    498.  nodelist = parser.parse(('endautoescape',)) 
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in parse 
    274.      compiled_result = compile_func(self, token) 
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in do_block 
    190.  nodelist = parser.parse(('endblock',)) 
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in parse 
    274.      compiled_result = compile_func(self, token) 
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in url 
    1286.     kwargs[name] = parser.compile_filter(value) 
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in compile_filter 
    353.   return FilterExpression(token, self) 
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in __init__ 
    570.          "from '%s'" % (token[upto:], token)) 

Exception Type: TemplateSyntaxError at /accounts/password/reset/ 
Exception Value: Could not parse the remainder: ',' from 'uid,' 

我如何解决这个错误?

编辑:

我改变这{{ protocol }}://{{ domain }}{% url 'django.contrib.auth.views.password_reset_confirm' uidb36=uid token=token %}但我有此错误:

Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb36': u'1', u'token': u'3ho-bd57a871a2fe3a4987ef'}' not found. 

+2

你有什么版本的Django?这听起来像是你的模板中的'uidb36 = uid'和'token = token'之间的逗号问题 –

+0

我使用的是django 1.5 –

回答

4

删除模板中uidb36=uidtoken=token之间的逗号。在Django 1.5,the comma's separating the url arguments aren't supported

In Django 1.5, the behavior of the url template tag will change ... The new library also drops support for the comma syntax for separating arguments to the url template tag.

+0

我删除了逗号,但发现了这个错误:''url'需要非空的第一个论据。 Django 1.5中的语法已更改,请参阅文档。“我该怎么做? –

0

如果面对'url' requires a non-empty first argument. The syntax changed in Django 1.5, see the docs.简单地把视图/函数是在双引号中的URL模板标签的第一个参数。