gpt4 book ai didi

python - django formset 中的异构形式

转载 作者:太空狗 更新时间:2023-10-30 00:03:56 27 4
gpt4 key购买 nike

我对 Django 表单有一个特定的问题,在我看来应该已经有解决方案了。

我在同一个 View 中提交了几个不同的表单,例如...(对不起,现在只使用伪代码)..

class Form1():
#different attributes

class Form2()
#different attributes

<html>
<form>
{{ 1-instance-Form1 }}
{{ 2-instance-Form1 }}
{{ 1-instance-Form2 }}
{{ 2-instance-Form2 }}
</form>
</html>

除此之外,我想让用户能够添加通过 jquery 可用的表单类之一的表单实例,这样表单可能会变成

<html>
<form>
{{ 1-instance-Form1 }}
{{ 2-instance-Form1 }}
{{ 1-instance-Form2 }}
{{ 2-instance-Form2 }}
{{ 3-instance-Form2 }}
</form>
</html>

现在,在寻找解决此类问题的解决方案时,我遇到了 Django 表单集的概念,如文档所述,它是同一 Form 类的实例集合。然而,正如我所看到的,表单集也可以处理异构表单:

修改了一些定义

class BaseHeterogenousFormSet(StrAndUnicode):

def append(form):
#add one more form to the formset

def is_valid():
#run is_valid for each of the forms in the formset

def clean():
#run the clean for each of the forms ...

我对这个问题的思考方式有问题吗?

最佳答案

您可以向同一个 View 提交多个表单集,但您需要避免使用不同前缀的名称冲突 ( https://docs.djangoproject.com/en/3.2/topics/forms/formsets/#using-more-than-one-formset-in-a-view )

一个表单集处理 Form1 的实例,另一个表单集处理 Form2 的实例。

关于python - django formset 中的异构形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9679122/

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