Django: недопустимый тег блока 'form.username' - PullRequest
4 голосов
/ 19 марта 2011

Я новичок в 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 Я получаю следующее сообщение об ошибке:

TemplateSyntaxError at / login /

Недопустимый тег блока: 'form.username'

Я не понимаю, что пошло не так. Насколько я знаю, вид входа в систему должен загружать этот шаблон и передавать объект form. При печати атрибут form.username должен генерировать HTML-код для текстового поля имени пользователя. Почему этого не происходит?

Ответы [ 2 ]

7 голосов
/ 19 марта 2011

form - это переменная контекста, а не тег шаблона.Получите к нему доступ через {{ form }} или {{ form.username }}!

1 голос
/ 19 марта 2011

Проблема решена.

Произошла путаница между {% ... %} и {{ ... }}.

{{ variable name }}

{% command %}

Это должно быть {{ form.username }} и {{ form.password }}

вместо {% form.username %} и {% form.password %}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...