如何在Django表单中添加标签ID

时间:2012-04-16 17:03:31

标签: javascript html django django-forms

我正在使用Django表单进行输入。但是,我想稍微定制一下。例如,以下Django代码将被翻译为:

#Django code

aerial_size_dist = forms.ChoiceField(initial='Very Fine to Fine') 

#Translated HTML  
<tr><th><label for="id_aerial_size_dist">Aerial size dist:</label></th><td><select name="aerial_size_dist" id="id_aerial_size_dist"></select></td></tr>

我的问题是如何从Django端添加一个标签属性,如“style”? widget可以更改Django表单标签属性吗?

目标HTML

<tr><th><label for="id_aerial_size_dist" style="display:none;">Aerial size dist:</label></th><td><select name="aerial_size_dist" id="id_aerial_size_dist"></select></td></tr>

3 个答案:

答案 0 :(得分:8)

这里回答类似的问题: Get the ID of a field widget in a formset。 虽然它不允许您直接自定义ID,但它使用默认(自动生成)ID

(简答)在模板中使用它:

修改

<label for="{{ form.my_field.id_for_label }}">{{ form.my_field.label }}</label>

旧的:(在某些情况下这不起作用 - 请参阅评论)

<label for="{{ form.my_field.auto_id }}">{{ form.my_field.label }}</label>

答案 1 :(得分:0)

class FormName(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(FormName, self).__init__(*args, **kwargs)
        self.fields['field_name'].widget.attrs['style'] = '...'

答案 2 :(得分:-1)