【问题标题】: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 代码。为什么不会发生这种情况?

【问题讨论】:

    标签: python django


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      问题解决了。

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

      {{ variable name }}

      {% command %}

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-26
        • 2015-02-10
        • 2014-08-18
        • 2016-04-12
        • 2012-03-09
        • 1970-01-01
        • 2012-05-03
        • 2015-09-16
        相关资源
        最近更新 更多