【问题标题】:Django dynamic model designDjango 动态模型设计
【发布时间】:2018-06-10 07:22:53
【问题描述】:

我有一个表,其中包含动态数量的条目,每个条目都包含数据(如 id、名称、日期)以及 3 个单选按钮。

    class Entry(models.Model):
        id = ...
        name = ...
        data = ...
        selected_option = ...

我想在用户提交表单时保存数据库中的所有条目。
我想知道为此设计模型的最佳方法是什么。

【问题讨论】:

  • 除非我遗漏了什么,否则您的数据库架构看起来不错。当用户表示希望添加更多信息时,您只需要一个表单来自动添加额外的条目选项
  • @Jason 页面中有大约 100 行,每一行都包含我展示的 Entry 类中的数据。我希望每当用户提交页面时,所有 100 行都将作为一个整体进入数据库。
  • 哎呀,好的。我会认真考虑审查这种用户体验,因为这听起来像是一场数据输入的噩梦。
  • @Jason 大部分字段都已填写,他们只需在每个单选按钮集中选择一个选项即可。

标签: django database database-design model


【解决方案1】:

我不确定您的数据是什么样的。存储大量数据或结构化数据也不错。假设有固定数量的选项,用户可以从中选择单选按钮,您可以将这些选项作为选项存储在您的数据库中。

class Entry(models.Model):
    entry_id = ...
    name = ...
    date = ...

class SelectedOption(models.Model):
    class Options:
        OPTION_1 = 'O1'
        OPTION_2 = 'O2'
        Choices = (
           (OPTION_1, 'Option 1'),
           (OPTION_2, 'Option 2'),
        )

    option = CharField(choices=Options.Choices, max_length=2)
    entry = ForeignKey(Entry)

我认为这样您就不会重复数据。如果您想执行一些分析,您的数据将更加结构化。

【讨论】:

  • 这些选项来自远程位置,而不是来自我的本地数据库,因此我必须动态创建它们。每个条目有 3 个选项,但是
    中大约有 100~ 个条目供用户选择
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 2018-12-06
  • 2021-05-01
  • 2012-10-30
  • 2021-04-23
  • 2019-08-10
相关资源
最近更新 更多