我有一个带有父实体和子项的内联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
我第一次执行此操作似乎有效 - 但现在我总是为我的孩子获取一个空/默认表单。
任何想法我可能做错了什么?我没有收到任何错误......
谢谢!
答案 0 :(得分:1)
有时你因为所有树木都看不到木头......
只使用初始值而不是对象:
form.fields['x'].initial = self.instance.x