内联表单集 - 如何为子表单设置默认值

时间:2014-03-01 09:55:21

标签: django django-forms inline-formset

我有一个带有父实体和子项的内联formset工厂。

我需要根据父级属性设置子表单初始值。

我认为以init格式的BaseFormset进行此操作是最好的方法。

所以这就是我的所作所为:

class MyBaseFormset(BaseInlineFormSet):

def __init__(self, *args, **kwargs):
    #Crispy
    ...
    super(MyBaseFormset, self).__init__(*args, **kwargs)

    form = self.forms[0]
    temp = Child()
    temp.x = "a"
    temp.y = "z"
    form.instance = temp

我第一次执行此操作似乎有效 - 但现在我总是为我的孩子获取一个空/默认表单。

任何想法我可能做错了什么?我没有收到任何错误......

谢谢!

1 个答案:

答案 0 :(得分:1)

有时你因为所有树木都看不到木头......

只使用初始值而不是对象:

form.fields['x'].initial = self.instance.x