2011-03-19 3 views
4

저는 장고를 처음 사용하고 로그인 페이지를 만들려고합니다.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 %}해야하는데.

관련 문제