【问题标题】:Django user customization database tablesDjango 用户自定义数据库表
【发布时间】:2020-08-17 09:42:42
【问题描述】:

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

之类的属性

序列号, 描述, 生产日期

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

我不确定执行此操作的最佳方法,因为在标准数据库模型中,您已经为特定表定义了所有字段,但这实质上意味着我必须找到一种方法来拥有用户定义的表。

有谁知道处理这个问题的好方法,在一天结束时,我想将具有用户定义的自定义属性的项目存储在数据库中。

谢谢

【问题讨论】:

    标签: python sql django database postgresql


    【解决方案1】:

    您可以选择多种方式。

    在非关系型数据库中,您不需要为 集合(类似于 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)
    

    您可以呈现FormSetProperty 表单。要即时添加额外的空表单,render dynamic formsets

    【讨论】:

      猜你喜欢
      • 2015-11-08
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 2018-11-20
      • 2017-02-13
      相关资源
      最近更新 更多