Django:无效的块标签'form.username'。

4

我是Django的新手,正在尝试创建一个登录页面。

这是我的urls.py文件的部分内容:

urlpatterns = patterns('',
    (r'^$', main_page),
    (r'^login/$', 'django.contrib.auth.views.login'),
)

这是我的登录页面模板 (registration/login.html):

<html>
<head>
<title>User Login</title>
</head>

<body>
    <h1>User Login</h1>
    {% if form.errors %}
    <p>username and password don't match.</p>
    {% endif %}
    <form method="post" action=".">
        <p>
            <label for="id_username">Username:</label> 
                    {% form.username %}
        </p>
        <p>
            <label for="id_password">Password:</label> 
                    {% form.password %}
        </p>
        <input type="hidden" name="next" value="/" /> 
            <input type="submit" name="login" />
    </form>
</body>
</html>

当我启动应用程序并转到login.html时,我收到以下错误消息:

TemplateSyntaxError at /login/

无效的块标签:'form.username'

我不明白出了什么问题。据我所知,登录视图应该加载此模板并传递form对象。当打印时,form.username属性应生成用户名文本字段的HTML代码。为什么没有发生这种情况?
2个回答

7

form 是一个上下文变量,而不是模板标签。所以要通过 {{ form }} 或者 {{ form.username }} 来访问它!


1

问题已解决。

{% ... %}{{ ... }}之间存在混淆。

{{ 变量名 }}

{% 命令 %}

应该是{{ form.username }}{{ form.password }}

而不是{% form.username %}{% form.password %}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接