有没有一种方法可以存储表单布局,以便在Django MVT中动态生成表单?

时间:2020-08-25 08:55:49

标签: django django-models django-forms django-templates

我正在研究一个相当大的Django项目,该项目具有60多种不同的表单布局(需要时可以超过此布局)。我很困惑我该如何手动构建所有此类表单?我想出了一个主意,就是我要将表单布局存储在数据库中,并且对于每个新表单,我只需要在数据库中进行配置,然后使用香脆的布局即可动态生成这些表单... 你们有更好的主意吗? 谢谢

2 个答案:

答案 0 :(得分:1)

当我从事繁重的表单项目时,我曾经依赖过mixin。 尝试确定什么是常用字段类型,并在mixins中创建它们。

如果它们很多,则创建一些包含某些字段集的“基本”表单。

然后,您只需要从不同的mixins和bases组成所需的表单,并添加特定于要创建的新表单的任何内容。

或者您可以为表单创建自己的映射结构,并在示例中将有关如何构建表单的逻辑存储在JsonField中。 一个包含名称,标签,小部件,占位符(以及您需要的东西)之类的json。如果您具有复杂的结构,它可能非常简单,也可能非常复杂...

答案 1 :(得分:1)

脆皮表单具有动态布局,可能会对这种使用情况有所帮助。

https://django-crispy-forms.readthedocs.io/en/latest/dynamic_layouts.html