我正在使用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表单标签属性吗?
<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>
答案 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)