栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

预填充内联FormSet?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

预填充内联FormSet?

因此,你不会喜欢这个答案,部分是因为我尚未完成编写代码,部分是因为这需要大量工作。

当我自己遇到这个问题时,你需要做的是:

  1. 花大量时间阅读formset和model-formset代码以了解它们的工作原理(某些功能驻留在formset类上,而其中一些功能驻留在工厂函数中,这无济于事)他们)。在后续步骤中,你将需要此知识。
  2. 编写你自己的formset类,该类继承
    baseInlineFormSet
    并接受
    initial
    。这里真正棘手的一点是,你必须重写
    __init__()
    ,并且必须确保调用它
    baseFormSet.__init__()
    而不是使用直接父级或祖父母级__init__()(因为它们分别是
    baseInlineFormSet
    baseModelFormSet
    ,并且它们都不能处理初始数据)。
  3. 编写你自己的适当admin内联类的子类(在我的情况下是
    TabularInline
    ),并重写其get_formset方法以返回
    inlineformset_factory()
    使用自定义
    formset
    类的结果。
  4. ModelAdmin
    具有内联的模型的实际子类上,重写
    add_view
    change_view
    ,并复制大部分代码,但有一个大变化:构建表单集所需的初始数据,并将其传递给自定义表单集(由你的表单集返回
    ModelAdmin
    get_formsets()
    方法)。
    我已经与Brian和Joseph进行了一些富有成效的聊天,以期为将来的Django版本进行改进。目前,模型表单集的工作方式使此问题变得比通常所要解决的麻烦多了,但是我想对它进行一些API清理非常简单。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402472.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号