我正在开发一个涉及带有一些标准字段的表单的项目,以及一些自定义字段用户稍后定义的项目。标准表单在models.py中的模型上定义。例如:
class Order(models.model):
number = models.TextField()
date = models.DateField()
然后我使用此模型创建一个简单的模型表单,以便填写信息。这是非常标准的Django。
棘手的是我的用户希望能够向表单添加任意字段。他们希望能够使用Admin界面基本上修改表单并在运行时为其添加值。
因此,他们可能想要一个名为“跟踪号码”的新文本字段或类似的东西。诀窍是他们有时只需要它,他们希望能够动态添加它而无需重建整个数据库。
我可以创建一个相当简单的模型来表示自定义字段,如下所示:
class CustomField(models.Model):
type = models.CharField(choices=FIELD_TYPES)
required = models.BooleanField()
我想我可以将ModelForm用于Order类并扩展它以添加这些自定义字段。我不确定的是如何将自定义字段值链接回订单。
我知道这听起来很奇怪,但在实践中它是有道理的。每个用户对表单的需求略有不同,并希望对其进行调整。如果我必须对模型进行硬编码以获得其特定字段,那么我将不得不为每个用户分配一个分支。这根本就没有扩展。相反,他们可以通过管理界面简单地添加字段,然后事情就会简单得多。
我觉得这可能已经被某人解决了。我根本找不到解决方案。我不能成为唯一一个得到这种要求的人吗?