Django 如何以编程方式访问{{form.my_field.id_for_label}}?

Django 如何以编程方式访问{{form.my_field.id_for_label}}?,django,django-forms,Django,Django Forms,我的Django项目使用引导v4 我遍历所有字段以添加HTML属性class=“form control”。我还需要添加一个HTML属性aria descripeby=“{}Help”,其中{}是小部件标签的id\u 在模板语言中,我可以使用{{form.my_field.id_for_label}}轻松打印该值,但我不知道如何编程 我用ModelForm().fields['…'].widget.id\u for_label()尝试了它,但该方法需要一个参数。通过查看Django源代码,返回值

我的Django项目使用引导v4

我遍历所有字段以添加HTML属性
class=“form control”
。我还需要添加一个HTML属性
aria descripeby=“{}Help”
,其中
{}
是小部件标签的
id\u

在模板语言中,我可以使用
{{form.my_field.id_for_label}}
轻松打印该值,但我不知道如何编程

我用
ModelForm().fields['…'].widget.id\u for_label()
尝试了它,但该方法需要一个参数。通过查看Django源代码,返回值实际上就是参数

有什么想法吗

class AbonnentForm(ModelForm):
    class Meta:
        model = Abonnent
        fields = '__all__'



    def __init__(self, *args, **kwargs):
        super(AbonnentForm, self).__init__(*args, **kwargs)

        # Add Bootstrap class to all <input> elements.
        for key, value in self.fields.items():
            value.widget.attrs.update({'class': 'form-control'})

            if value.help_text:
                id_for_label = "{}Help".format(value.widget.id_for_label())
                value.widget.attrs.update({'aria-describedby': id_for_label})

        self.fields['erste_ausgabe'].widget.attrs.update({'placeholder':'MM/JJJJ'})
        self.fields['letzte_ausgabe'].widget.attrs.update({'placeholder':'MM/JJJJ'})
class abonnotform(ModelForm):
类元:
型号=ABONENT
字段='\uuuu所有\uuuu'
定义初始化(self,*args,**kwargs):
super(AbonnentForm,self)。\uuuuu初始值(*args,**kwargs)
#将引导类添加到所有元素。
对于键,self.fields.items()中的值:
value.widget.attrs.update({'class':'formcontrol'})
如果value.help\u文本:
id_for_label=“{}Help”.format(value.widget.id_for_label())
value.widget.attrs.update({'aria-descripeby':id_for_label})
self.fields['erste_ausgabe'].widget.attrs.update({'placeholder':'MM/jj'})
self.fields['letzte_ausgabe'].widget.attrs.update({'placeholder':'MM/jj'})

您可以像这样自己建造:

for key, value in self.fields.items():
     value.widget.attrs.update({'class': 'form-control'})

     if value.help_text:
         django_id_for_label = self.auto_id % key  # self.auto_id == 'id_%s'
         my_id_for_label = '{}Help'.format(django_id_for_label)
         value.widget.attrs.update({'aria-describedby': my_id_for_label})