Django Обработка ошибок с двумя формами с одинаковыми полями - PullRequest
0 голосов
/ 14 июля 2011

У меня есть две формы в одном шаблоне, и я хочу отображать отдельные сообщения об ошибках независимо друг от друга.

index.html

<form id="signin" action="{% url auth_login %}" method="post" accept-charset="utf-8">
{% csrf_token %}
 <fieldset id="signin_menu">
 <label for="username">Username</label>
 <input id="username" name="username" value="" title="username"type="text">
 </fieldset>
</form>

<form action="/accounts/register/" method="post" accept-charset="utf-8">
{% csrf_token %}
<fieldset id="register_set">
 <label for="username">Username</label>
 <input id="username" name="username" value="" title="username"type="text">
 </fieldset>
</form>

Я попробовал этот код:

{% if form.username.errors %}
    {% for error in form.username.errors %}
<span class="error_message">{{ error|escape }}  </span>
{% endfor %}
{% endif %}

Так как я использую то же имя пользователя.Он отображает сообщение об ошибке в обеих формах, если я размещу код выше.

1 Ответ

1 голос
/ 14 июля 2011

У Django нет возможности узнать, на какую форму вы ссылаетесь в DOM, если каждая форма имеет одинаковые поля с одинаковыми именами.У вас также есть два поля с одинаковым идентификатором, который является недействительным HTML.Значение атрибута ID должно быть уникальным.Я бы порекомендовал добавлять префиксы к формам , чтобы разделить пространства имен.

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