2011-06-01 25 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