1

我正在处理一个项目,该项目涉及一个带有一些标准字段的表单和一些用户稍后定义的自定义字段。标准形式在 models.py 中的模型上定义。例如:

class Order(models.model):
    number = models.TextField()
    date = models.DateField()

然后我使用这个模型创建一个简单的模型表单来填写信息。这是非常标准的 Django。

棘手的是我的用户希望能够向表单添加任意字段。他们希望能够使用管理界面在运行时基本上修改表单并为其添加值。

因此,他们可能需要一个名为“Tracking Number”或类似名称的新文本字段。诀窍是他们有时只需要它,并且他们希望能够动态添加它而不重建整个数据库。

我可以创建一个相当简单的模型来表示自定义字段,如下所示:

class CustomField(models.Model):
    type = models.CharField(choices=FIELD_TYPES)
    required = models.BooleanField()

我想我可以将 ModelForm 用于 Order 类并扩展它以添加这些自定义字段。我不确定如何将自定义字段值链接回订单。

我知道这一切听起来可能很奇怪,但实际上它是有道理的。每个用户对表单的需求略有不同,并希望对其进行调整。如果我必须对模型进行硬编码以拥有它们的特定字段,那么我将不得不为每个用户创建一个 fork。那根本无法扩展。相反,如果他们可以通过管理界面简单地添加字段,那么事情就会简单得多。

我觉得这可能已经被外面的人解决了。我根本找不到解决方案。我不可能是唯一一个收到这种要求的人吧?

4

0 回答 0