行内表单集 - 如何为子表单设置默认值
我有一个内联表单集合,里面有一个父实体和一个子实体。
我需要根据父实体的属性来设置子表单的初始值。
我想在我的BaseFormset
表单的init
方法里做这个,觉得这样最合适。
所以我这样做:
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 个回答
1
有时候你会因为眼前的树木而看不到整片森林……
只需要使用初始值,而不是一个对象:
form.fields['x'].initial = self.instance.x