2013-10-23 50 views
0

我有Django的模板在我收到的形式錯誤的屬性errors爲html如何來從形狀誤差值屬性在Django

form.html

   {% if form.errors %} 
       <div class="span12"> 
        {{form.errors}}  
       </div> 
      {% endif %} 

的上述模板代碼的輸出是等

HTML

<ul class="errorlist"> 
     <li>price 
     <ul class="errorlist"> 
      <li>price is required</li></ul> 
     </li> 
     <li>name 
     <ul class="errorlist"> 
      <li>name is required</li> 
     </ul> 
     </li> 
     <li>description 
     <ul class="errorlist"> 
      <li>description is required</li> 
     </ul> 
     </li> 

設計

price 
    price is required 
name 
    name is required 
description 
    description is required 

但我想在格式像下面輸出

   {% if form.errors %} 
       <div class="span12"> 
        {% for error in form.errors %} 
         {{key}} : {{value}} 
        {% endfor %} 
       </div> 
      {% endif %} 

必需/需要輸出

顯示

任何人都可以請讓我知道如何才能打印/顯示在上面的格式結果接入/使用form.errors屬性?

編輯

或者我們可以把錯誤的字典從視圖中像下面

def render_view(request): 
    form = Form() 
    if form.is_valid(): 
     ..... 
     ..... 
    render_to_response('template.html',{'errors':dict(form.errors)}) 

template.html

{% if errors %} 
    {% for key in errors %} 
     {{key}} : {{errors.key}} 
    {% endfor %} 
{% endif %} 

{%ENDIF% }

但在字典中鍵的這種情況下,價值不顯示那麼如何訪問呢?

+0

我記得'form.errors'是像字典對象,你可以嘗試迭代它。 – oleg

回答

0

我記得form.errors就像對象字典所以你可以嘗試迭代它。

{% if errors %} 
    {% for key, error_list in errors.iteritems %} 
     {{key}} : {{error_list}} 
    {% endfor %} 
{% endif %} 

如果你會遍歷這樣

{% if errors %} 
    {% for key in errors %} 
     {{key}} : {{errors}} 
    {% endfor %} 
{% endif %} 

你會遍歷字典鍵,以便考慮爲使用itemsiteritems

-1

不是很優雅,但可以試試這個:

{% for field in form %} 
    {% if field.errors %} 
     {{field.label}} : {{field.errors}} 
    {% endif %} 
{% endfor %} 
+0

羅漢:請看看我的編輯問題 –