Django:交易向导和自动识别码

时间:2011-12-01 19:32:42

标签: django django-forms django-formwizard

假设我在表单中有一个名为address_line_1的字段,一旦我渲染它就会生成它:

<input id="id_1-address_line_1" type="text" name="1-address_line_1">

我在不同的页面上使用此表单但是它没有一致性,一个生成为id_1-address_line_1而另一个相同的形式生成id_1-address_line_1因此它对我的javascript方面有害。如何删除id_X部分,以便呈现的ID与字段名address_line_1

具有完全相同的名称

2 个答案:

答案 0 :(得分:0)

FormClass(prefix="prefix_to_display")

答案 1 :(得分:0)

您可以使用auto_id参数删除id_。在您的视图类中:

def get_form_kwargs(self, step=None):
    kwargs = super().get_form_kwargs(step)
    kwargs['auto_id'] = True
    return kwargs

为了摆脱X-,您必须手动渲染字段。这可以使用自定义模板或字段定义来完成:

address_line_1 = forms.CharField(
    widget=forms.TextInput(attrs={'id': 'address_line_1'})
)