0

我有一个'inlineformset_factory',我正在尝试弄清楚如何为各个字段设置属性。除了使用 javascript 之外,我还没有想出任何添加它们的方法(这将是 hacky 和坏的)。

最后我想要类似的东西:

<input id="id_authorbook_set-0-title" type="text" name="authorbook_set-0-title" maxlength="255" placeholder="Title" autofocus="autofocus">

我知道在使用普通表单甚至 ModelForms 时可以添加自定义属性attrs={'foo': 'bar', 'placeholder': 'Username'},但无法找到任何方法来对表单集工厂执行相同操作。

有解决办法吗?谢谢您的帮助。

4

1 回答 1

0

你所描述的工作,attrs参数,被传递给一个表单小部件,这意味着你需要表单字段,因此需要一个表单。

inlineformset_factoryformset_factoryModelForms 的一个。

将两者结合在一起,您需要定义一个自定义并将其作为参数ModelForm传递给工厂。form

您还可以定义一个自定义表单集,它遍历活动表单,执行相同的覆盖,并将其传递给inlineformset_factory.

class MyMF(forms.ModelForm):
    class Meta:
        model = Foo

    def __init__(self, *args, **kwargs):
        super(MyMF, self).__init__(*args, **kwargs)
        self.fields['foo'].widget.attrs = {'foo': 'bar'}

inlineformset_factory(form=MyMF)
于 2012-08-21T23:26:01.030 回答