3

我正在使用 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 端添加标签属性,例如“样式”?小部件可以更改 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>
4

3 回答 3

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>
于 2013-02-11T11:10:59.117 回答
1
class FormName(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(FormName, self).__init__(*args, **kwargs)
        self.fields['field_name'].widget.attrs['style'] = '...'
于 2013-02-11T11:57:42.993 回答
-1

https://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.Widget.attrs

于 2012-04-16T17:25:47.180 回答