2011-07-14 12 views
0

1つのテンプレートに2つのフォームがあり、互いに独立した個別のエラーメッセージを表示したい。私は、同じユーザー名を使用しておりますのでDjango同じフィールドを持つ2つのフォームでのエラー処理

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

<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> 

index.htmlを私はこのコードを試してみました。上のコードを置くと、両方のフォームにエラーmsgが表示されます。

+1

ログインビューはカスタムですか?そうでなければ両方のフォームをformというテンプレートに渡すのではなく、form_aとform_bを持つことができます。つまり、テンプレートコードを独立させることができます。 form_a.username.errors? – JamesO

答えて

1

Djangoは、各フォームが同じ名前の同じフィールドを持つときに、DOMで参照しているフォームを知る方法がありません。同じIDを持つ2つのフィールドもありますが、これは無効なHTMLです。 ID属性の値は一意でなければなりません。名前空間を別に保つには、prefixing your formsをお勧めします。

関連する問題