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'