2012-02-26 10 views
0

DjangoプロジェクトでDjaxを使用してAJAXでフォーム検証を行っています。検証エラーを効率的に表示する方法があるかどうかを知りたい。今のところ、AJAXが呼び出されたときにサーバー側でエラーが返され、クライアント側でjavascriptを使用してエラーが表示されます。DjangoでのDajaxを使用したフォーム検証

# (if the form is not valid ...) 

error_messages = [] 
# Display error messages. 
for field in form: 
    error_messages += field.errors 

dajax.add_data({'msg':error_messages}, 'displayError')  
return dajax.json() 

Ajaxを使用してエラーを表示するには、djangoテンプレートタグを使用する方法はありますか?

答えて

1

あなたはこれらのエラーを表しHTMLを返し、ちょうどJavaScriptを使用してそれを挿入、のようなものができます:私は

ビュー

template = 'errors.html' 
data = { 
    'error_messages': error_messages, 
} 
return render_to_response(template, data, 
    context_instance = RequestContext(request)) 

errors.html

<ul> 
{% for message in error_messages %} 
    <li>{{ message }}</li> 
{% endfor %} 
</ul> 

もののこのアプローチのファンではない、私はデータとプレゼンテーションを分離することを好むリーンだけjsonを返します。

+0

これは似ていますが、 '' 'render_to_string'''を使ってHTMLを返し、指定したdivタグに表示する方が簡単だとわかりました。 –

+1

さらにシンプルに、エラーリストクラスをカスタマイズしました。この例はhttps://docs.djangoproject.com/en/dev/ref/forms/api/#customizing-the-error-list-formatにあります。 –

関連する問題