2011-06-01 53 views
8

我正選擇性地在表單上呈現字段。Django - 呈現單個表單字段的<label>

class SomeForm(forms.Form): 
    foo = forms.ChoiceField(label='Some Foo', ...) 
    bar = forms.BooleanField(label='Some Bar', ...) 
    ... 

我有一個自定義標籤,基於一些其他的邏輯,讓我遍歷窗體的領域,我需要使用FIELD上下文變量在標籤:

{% fieldsineed %} 
    {% if FIELD.field.widget|klass == "CheckboxInput" %} 
    <li>{{ FIELD }} {{ FIELD.field.label }}</li> 
    {% else %} 
    <li>{{ FIELD.label }}: {{ FIELD }}</li> 
    {% endif %} 
{% endfieldsineed %} 

klass是我從here獲得的過濾器,它返回已過濾值的類名稱。)

不幸的是,FIELD.label只是一個字符串。有沒有簡單的方法來呈現給定表單字段的<label>標籤?

回答

12

https://docs.djangoproject.com/en/1.9/topics/forms/#s-looping-over-the-form-s-fields

顯示,你可以做

{{ FIELD.label_tag }} 

應該呈現類似

<label for="id_fieldName">Fieldlabel:</label> 
+0

D'哦 - RTFM。謝謝! – 2011-06-01 23:59:19

+0

我正在等待某人發表lmgtfy評論。不幸的是,這裏的人太好了;) – 2011-06-02 00:01:54

+0

我_did_花了20分鐘閱讀文檔,並用'dir()'在shell中挖掘。很容易錯過。 DBAD – 2011-06-02 00:10:59