我似乎無法找到這是否/如何可能。但是說我有一個表格:
class Detform(ModelForm):
class Meta:
model = Ap_detcmd
fields = ["foo"]
Formset = inlineformset_factory(ParentModel, ChildModel,
form=Detform,
can_delete=False,
extra=0)
然后在模板中呈現,例如在管理表單(或任何欄位)中:
<input type="hidden" name="ap_detcmd-TOTAL_FORMS" value="0" id="id_ap_detcmd-TOTAL_FORMS">
由于表單的模型是“Ap_detcmd”,那么我將#id_ap_detcmd-.... 作為所有欄位的前綴。
有沒有辦法指定該前綴?
uj5u.com熱心網友回復:
好的,簡而言之:
- 子類 BaseInlineFormset
- 將 {"prefix":"foo"} 添加到init 中的 kwargs并傳遞它
- 魔法
例如:
class MyBaseInlineFormset(BaseInlineFormSet):
def __init__(self, *args, **kwargs):
kwargs["prefix"] = "foo"
super().__init__(*args, **kwargs)
然后你的 inlineformset 宣告是這樣的:
DetPoFormset = inlineformset_factory(Ap_entcmd, Ap_detcmd, form=Detform, formset=MyBaseInlineFormset, can_delete=True, extra=0)
然后您的管理表單輸入(id_XXX-TOTAL_FORMS 等)將如下所示:
<input type="hidden" name="foo-TOTAL_FORMS" value="0" id="id_foo-TOTAL_FORMS">
以及表單集中的所有標簽。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/337396.html
