Python django中面向最终用户的动态表单
我正在创建一个django项目,其中任何用户都可以创建具有任意数量字段的表单。例如,用户A可以创建以下表单:Python django中面向最终用户的动态表单,python,django,forms,django-models,Python,Django,Forms,Django Models,我正在创建一个django项目,其中任何用户都可以创建具有任意数量字段的表单。例如,用户A可以创建以下表单: 字段名称:字段_1-类型:文本 字段名称:字段_2-类型:日期 字段名称:字段_3-类型:文件 用户B可以创建: 字段名称:名称-类型:文本 字段名称:phone-类型:Text 看,用户需要对程序说出字段的名称和类型。因为是一种动态方式,可以为每个表单创建任意数量的表单和任意数量的字段。创建数据库模型最有效的方法是什么 考虑到程序在用户发送字段之前不知道字段的名称。因此,在视图
- 字段名称:字段_1-类型:文本
- 字段名称:字段_2-类型:日期
- 字段名称:字段_3-类型:文件
- 字段名称:名称-类型:文本
- 字段名称:phone-类型:Text
考虑到程序在用户发送字段之前不知道字段的名称。因此,在视图中,我无法使用字段的确切名称来处理它。如果在数据库中创建两个表,则可以非常轻松地处理此问题。一个表将序列化表单存储为JSON,另一个表保存表单数据(以及表单定义的链接) 如何序列化它取决于您,但它看起来是这样的: 序列化表单
{
"fields": [
{
"name": "field_name"
"type": "text"
"attrs": []
}
]
}
序列化数据(ForeignKey的上述格式)
这样做的好处是您不需要动态创建模型,而且您的数据库会保持更干净,因为您不会有太多的表 可能重复的
{
"data": {
"field_name": "value"
}
}