所以我只是尝试在Django中设置基本用户身份验证,并下载了带模板的django注册应用程序。现在,当我在127.0.0.1:8000/accounts/register/运行服务器时,我得到一个基本的注册页面,我填写详细信息,当我点击提交时,我收到此错误“NoReverseMatch at / accounts / register /”
Error during template rendering
In template Users/sudhasinha/mysite/mysite/registration/templates/registration/activation_email.txt, error at line 4
'url' requires a non-empty first argument. The syntax changed in Django 1.5, see the docs.
1 {% load i18n %}
2 {% trans "Activate account at" %} {{ site.name }}:
3
4 http://{{ site.domain }}{**% url registration_activate activation_key %**}
5
6 {% blocktrans %}Link is valid for {{ expiration_days }} days.{% endblocktrans %}
7
这就是我的activation_email.txt的样子:
{% load i18n %}
{% trans "Activate account at" %} {{ site.name }}:
http://{{ site.domain }}{% url registration_activate activation_key %}
{% blocktrans %}Link is valid for {{ expiration_days }} days.{% endblocktrans %}
这就是我的registration_form.html:
{% extends "base.html" %}
{% load i18n %}
{% block content %}
<form method="post" action=".">
{{ form.as_p }}
<input type="submit" value="{% trans 'Submit' %}" />
</form>
{% endblock %}
我对Django的经验很少,并希望得到一些帮助来解决这个错误。我的网址似乎设置正确但我会在需要时发布。还原谅我可怕的格式化
答案 0 :(得分:1)
如错误所示,模板url
标记的行为在Django 1.5中发生了变化。它过去只使用纯文本作为视图名称,因此不必引用它。能够将视图名称作为上下文变量传递是有用的,因此语法已更改。描述这种变化的文档说:
在Django 1.5中,url模板标记的行为将发生变化,第一个参数将变为上下文变量,而不是特殊情况下的非引用常量。这将允许url标记使用上下文变量作为要反转的URL名称的值。 https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#url
如果你恰当地引用它,你仍然可以使用一个字符串常量 - 你的电子邮件模板应该是这样的:
http://{{ site.domain }}{% url "registration_activate" activation_key %}