gpt4 book ai didi

python - 使用 modelformset_factory 时如何区分 django 中的表单集?

转载 作者:行者123 更新时间:2023-12-01 03:44:42 25 4
gpt4 key购买 nike

假设我有一个联系人对象,我想在 django(1.8) 中拥有两组联系人表单集,并按 html 模板中的 fieldset 标签划分。我使用 modelformset_factory。无论我使用一两个不同的工厂函数,这两个表单集中的字段在html中具有相同的id。由于 http.Request.body 是字典,因此我丢失了有关两个表单集之一的信息。

contacts_formset = modelformset_factory(
models.Contact,
form=forms.ContactDetailForm,
extra=2)

contacts_escalation_formset_new = contacts_formset(
queryset=models.Contact.objects.none())

contacts_other_formset_new = contacts_formset(
queryset=models.Contact.objects.none())

在 HTML 中:

input id="id_form-0-name" maxlength="155" name="form-0-name" type="text"
input id="id_form-0-name" maxlength="155" name="form-0-name" type="text"

对于简单的 django 表单,有关键字“prefix=...”。但这个工厂函数没有这个参数。怎么解决呢?

最佳答案

modelformset_factory 类返回 FormSet 类。此 FormSet 类有一个可选的 prefix 参数,类似于 Form 类。

contacts_escalation_formset_new = contacts_formset(
prefix='escalation',
queryset=models.Contact.objects.none(),
)

contacts_other_formset_new = contacts_formset(
prefix='other'
queryset=models.Contact.objects.none(),
)

请参阅 using more than one formset in a view 上的文档再举一个例子。

关于python - 使用 modelformset_factory 时如何区分 django 中的表单集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104332/

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