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

Posted

技术标签:

【中文标题】Django:无效的块标签\'form.username\'【英文标题】:Django: Invalid block tag 'form.username'Django:无效的块标签'form.username' 【发布时间】:2011-07-18 19:59:31 【问题描述】:

我是 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 时,我收到以下错误消息:

/login/处的TemplateSyntaxError

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

我不明白出了什么问题。据我所知,login view 应该加载这个模板并传递form 对象。打印时,form.username 属性应该为用户名文本字段生成 HTML 代码。为什么不会发生这种情况?

【问题讨论】:

【参考方案1】:

form 是上下文变量,而不是模板标签。所以请通过 form form.username 访问它!

【讨论】:

【参考方案2】:

问题解决了。

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

variable name

% command %

应该是 form.username form.password

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

【讨论】:

以上是关于Django:无效的块标签'form.username'的主要内容,如果未能解决你的问题,请参考以下文章

Django 无效的块标签:'endfor',预期的'endblock'

Django:无效的块标签:'static',预期的'endif'

Google App Engine Python django TemplateSyntaxError:无效的块标签:'endif'

django cms - 无效的块标签 endblock

第 3 行的块标记无效:“原始”。您是不是忘记注册或加载此标签?使用 Django 1.9 和 Jinja2

无效的块标记“其他”。您是不是忘记注册或加载此标签?