2011-03-19 31 views
4

我是新來的Django,我試圖創建一個登錄頁面。Django:無效的塊標記「form.username」

這裏的(部分)我urls.py文件:

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

下面是我的登錄頁面模板(註冊/ 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在/登錄/

無效的塊標籤: 'form.username'

我不明白什麼地方出了錯。據我所知,登錄視圖應該加載此模板並通過form對象。打印時,form.username屬性應該爲用戶名文本字段生成HTML代碼。爲什麼不會發生?

回答

7

form是一個上下文變量,而不是模板標籤。因此請通過{{ form }}{{ form.username }}訪問!

1

問題解決。

{% ... %}{{ ... }}之間有混淆。

{{ variable name }}

{% command %}

它應該是{{ form.username }}{{ form.password }}

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

相關問題