2012-02-26 2 views
0

Я работаю над проверкой формы с помощью AJAX с использованием Dajax в проекте Django. Я хотел бы знать, есть ли эффективный способ отображения ошибок проверки. На данный момент я возвращаю ошибки на стороне сервера при вызове AJAX, а на стороне клиента отображаются ошибки с помощью javascript.Проверка формы с использованием Dajax в Django

# (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() 

Можно ли использовать теги шаблонов django для отображения ошибок с использованием AJAX?

ответ

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