在创建时更改django中表单输入元素的ID

时间:2015-08-19 00:54:45

标签: python django forms input

当django创建表单时,输入的id如下:

<input id="id_name"..../>

如何更改ID,让我们说“测试”?

必须以某种方式处于form.py中,对吧?

class ReviewForm (forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ReviewForm, self).__init__(*args, **kwargs)
        self.fields['location']=forms.CharField(label='', required=False)
        self.fields['review']=forms.CharField(label='', required=False)

2 个答案:

答案 0 :(得分:4)

当您实例化表单时,您需要将auto_id关键字设置为格式为'%s'的字符串来调用它,该字符串将替换为字段名称。

所以你想要这样做:

ReviewForm(auto_id="test_%s")

您的ID将以test_作为前缀生成,后跟字段名称。

直接来自Django 1.8文档:

  

使用Form构造函数的auto_id参数来控制id和label行为。

     

...

     

如果将auto_id设置为包含格式字符'%s'的字符串,则表单输出将包含标记,并将根据格式字符串生成id属性。例如,对于格式字符串'field_%s',名为subject的字段将获得id值'field_subject'。

https://docs.djangoproject.com/en/1.8/ref/forms/api/#configuring-form-elements-html-id-attributes-and-label-tags

答案 1 :(得分:0)

我找到了一种方法,解释here

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %