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

问题描述 投票:1回答:2

假设我在表单中有一个名为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因此它hurty我的javascript方面。如何删除id_X部分,以使渲染的id与字段名称address_line_1具有完全相同的名称

django django-forms django-formwizard
2个回答
0
投票
FormClass(prefix="prefix_to_display")

0
投票

你可以使用id_参数摆脱auto_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'})
)
© www.soinside.com 2019 - 2024. All rights reserved.