gpt4 book ai didi

python - django 中最终用户的动态表单

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:46 25 4
gpt4 key购买 nike

我正在创建一个 django 项目,任何用户都可以在其中创建包含任意数量字段的表单。例如,用户 A 可以创建以下表单:

  • 字段名称:Field_1 - 类型:文本
  • 字段名称:Field_2 - 类型:日期
  • 字段名称:Field_3 - 类型:文件

用户 B 可以创建:

  • 字段名称:名称 - 类型:文本
  • 字段名称:电话 - 类型:文本

看看用户需要向程序说出字段的名称和类型。由于是一种动态方式,可以创建任意数量的表单以及为每个表单创建任意数量的字段。创建数据库模型最有效的方法是什么?

请考虑到,在用户发送字段名称之前,程序并不知道该字段的名称。因此在 View 中,我无法使用确切的字段名称来处理它。

最佳答案

如果您在数据库中创建两个表,您可以很容易地处理这个问题。有一个表将序列化表单存储为 JSON,另一个表保存表单数据(并链接到表单定义)。

如何序列化它取决于您,但它看起来像这样:

序列化形式

{
"fields": [
{
"name": "field_name"
"type": "text"
"attrs": []
}
]
}

序列化数据(上述表单的外键)

{
"data": {
"field_name": "value"
}
}

这样做的优点是您不会动态创建模型,并且您的数据库会保持干净得多,因为您不会有大量的表闲置。

关于python - django 中最终用户的动态表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42776062/

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