gpt4 book ai didi

Django:在表单字段级别更改 DOM id

转载 作者:行者123 更新时间:2023-12-04 03:13:05 28 4
gpt4 key购买 nike

我知道,默认情况下,Django 会在呈现格式 id_for_%s 时为每个表单字段自动填充 id。 .可以通过提供 auto_id 来修改格式。具有不同格式的参数作为其对 Form 构造函数的值。

然而,这并不是我正在寻找的。我想要完成的是仅更改表单中众多字段之一的 ID。此外,该解决方案不应中断 form = MyForm(request.POST) 的使用。 .

附注。 MyForm 是一个模型表单,因此每个 id 都来自其对应的 Model 字段。

感谢您的帮助。

最佳答案

表单框架似乎在这里生成标签:

def _id_for_label(self):
"""
Wrapper around the field widget's `id_for_label` class method.
Useful, for example, for focusing on this field regardless of whether
it has a single widget or a MutiWidget.
"""
widget = self.field.widget
id_ = widget.attrs.get('id') or self.auto_id
return widget.id_for_label(id_)
id_for_label = property(_id_for_label)

这意味着您可以为您的字段小部件提供一个“id”键,以将其设置为您想要的任何内容。
foo = forms.CharField(widget=forms.TextInput(attrs={'id': 'foobar'}))

或者覆盖 init 并在表单初始化后设置 attrs。

我不明白这会如何破坏表单,因为 django 的表单框架从来不知道 HTML id(数据没有传递到服务器......)

关于Django:在表单字段级别更改 DOM id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7910353/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com