【问题标题】:Inline formsets - How to set default values for child form内联表单集 - 如何为子表单设置默认值
【发布时间】:2014-04-02 11:54:12
【问题描述】:

我有一个带有父实体和子实体的内联表单集工厂。

我需要根据父级的属性设置子窗体的初始值。

我认为在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

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

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

谢谢!

【问题讨论】:

    标签: django django-forms inline-formset


    【解决方案1】:

    有时你看不到树林,因为所有的树......

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

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

    【讨论】:

      猜你喜欢
      • 2015-07-12
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      相关资源
      最近更新 更多