Django用户自定义数据库表



我正在尝试构建一个Django网站,用户可以在其中创建称为项的自定义对象。每个项目都需要能够具有存储在数据库中的特定属性。例如,物品需要等属性

序列号,描述制造日期

然而,我希望用户能够指定这些字段,类似于微软动态允许的字段。例如,用户应该能够指定他们想要一个名称为"型号"的文本字段,该字段与特定的项目类型相关联,然后他们可以将这些属性存储在数据库中。

我不确定这样做的最佳方法,因为作为一个标准的数据库模型,您已经为特定的表定义了所有字段,但这本质上意味着我必须找到一种方法来使用用户定义的表。

有人知道处理这个问题的好方法吗?归根结底,我想在数据库中存储具有用户定义的自定义属性的项目。

感谢

有多种方法可供选择。

在非关系数据库中,您不需要为集合定义所有字段(类似于RDBMS的表(。

但是,如果您想在Django中使用SQL,那么您可以定义一个Property模型。

class Property(models.Model):
name = CharField()
value = CharField()
item = models.ForeignKey(Item, on_delete=models.CASCADE)
class Item(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)

您可以呈现Property表单的FormSet。若要动态添加额外的空表单,请呈现动态表单集。

最新更新