2012-02-26 45 views
0

我正在使用AJAX在Django項目中使用Dajax進行表單驗證。我想知道是否有一種有效的方式來顯示驗證錯誤。現在,當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() 

有沒有什麼辦法可以使用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標記中會更簡單。 – 2012-03-17 01:03:29

+1

更簡單,我自定義錯誤列表類。你可以在https://docs.djangoproject.com/en/dev/ref/forms/api/#customizing-the-error-list-format上看到這個例子。 – 2012-03-17 18:26:52