gpt4 book ai didi

python - Django:用很少的字段实例初始化表单

转载 作者:行者123 更新时间:2023-11-28 18:33:09 27 4
gpt4 key购买 nike

我有一个 django ModelForm 来创建/编辑一些对象。

我可以在 UI 中添加新的附加字段,如下所示: http://bootsnipp.com/snippets/featured/dynamic-form-fields-add-amp-remove-bs3

我正在从所有字段(主要字段和附加字段)收集数据并将其作为列表保存到数据库中:

例如:

我在 ModelForm 中有一个 name 输入字段,并且在 UI 中添加了一些额外的 name 字段。我正在发送这样的请求:

name=test1&name=test2&name=test3 等等..然后像这样保存到数据库中:

name = ['test1', 'test2', 'test3']

这里一切都很好,但是......

当我想显示我的表单以编辑现有元素时,我真的不知道如何从此列表加载数据 name = ['test1', 'test2', 'test3']进入我的 ModelForm + 如何使用数据生成这些附加字段..

对此有什么想法吗?

最佳答案

我还没有这样做,但我目前正在从事的项目将来会需要它,所以我研究了一些资源。虽然this tutorial很老了,我认为它包含一些仍然适用的关键概念。本教程涉及具有多个选择的民意调查的 django 教程。下面的代码概述了应该在一个投票问题旁边呈现三种选择形式。

pform = PollForm(instance=Poll())
cforms = [ChoiceForm(prefix=str(x), instance=Choice()) for x in range(0,3)]

您说您希望表单显示现有元素以供编辑。所以这里的 Choice() 应该替换为模型的一个实例,所以对于你来说你会做一些像 instance=name1 where name1 = Name.objects.get(id='1') 或者一些其他查询来获取模型的实例。

教程作者也对这个问题做了说明:

“这样,您现在就有了一个 View ,可以同时为其添加一个 Poll 和 3 个 Choice 对象。

制作 View 来编辑相同的对象非常相似,您只需要查询 Poll 和 Choice 对象并使用它们而不是空实例。您还可以使用 Choice ID 作为 ChoiceForm 实例的前缀。使用 ModelForm 的好处在于,一旦您将实例参数从新对象更改为现有对象,它就会变成编辑表单而不是添加表单,因此您不必更改任何内部结构即可从添加到编辑”

关于python - Django:用很少的字段实例初始化表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35027389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com