2011-01-22 31 views
0

我有以下幾點:Django的訪問錯誤

{% if formDetails.errors %} 
{% for key, value in formDetails.errors.items %} 
{% for error in value %} 
    <div class="ui-widget" id="id-error"> 
     <div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"> 
      <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span> 
      <strong>{{ key }}:</strong> {{ error }}</p> 
     </div> 
    </div> 
{% endfor %} 
{% endfor %} 

但不幸的是key給我的模型字段(這是用下劃線小寫的)的名稱。我怎樣才能得到漂亮的名字,如field.label_tag

回答

5

form.errors模板變量列表不是一本字典,所以你如下應該訪問:

{% for error in form.errors %} 
    <li>{{ error }}</li> 
{% endfor %} 

此外,它還包含形成由clean()方法,你正在處理的Form對象上引發廣泛的錯誤。由各個領域提出了驗證錯誤,可以這樣訪問:

{% for field in form %} 
    {% for error in field.errors %} 
     {{ error }} 
    {% endfor %} 
    {{ field.label_tag }} 
{% endfor %} 

this part of the Django docs讀,好像你沒有的你有什麼訪問表單時有充分的瞭解。

+0

你的第二個例子工作正常。乾杯!現在我有錯誤發生在你不知道如何停止單個字段上方顯示的錯誤的形式之上嗎? – Sevenearths

+0

不幸的是,如果您想從上面的鏈接中找到錯誤消息,則不能使用'as_table': – Sevenearths

+0

每個字段的錯誤都針對**每個**字段。根據我的回答和提供的文檔中所述,通過使用提供的標籤和循環等方式顯示事物的顯示位置。 –