2016-04-25 187 views
0

我想创建一个不喜欢的物品的数据库,但根据物品的类别,它有不同的列,我想要显示,当你所看到的是汽车。事实上,我希望栏目能够根据类别进行动态分析,这样我们就可以在未来轻松地为汽车添加更多属性,并且现在也可以显示该栏目。我可以在django中创建动态列(和模型)吗?

例如:

Table example picture

但是,当你上车或人进行筛选,其他行显示了过滤。

我可以找到有关使用django模型的所有示例都没有给出关于如何在干净,简单的Web界面中完成此行为的清晰画面。

+0

你问的是如何建模你的数据库,或者如何显示给用户? – Chris

+0

我开始问我如何在django中适当地对这类数据建模。一旦我明白了这一点,我会多花点时间看看我能否找到正确的方式来展示它,以便我知道在这方面要问什么具体问题。 –

+0

我还需要在数据库中创建此数据的视图,以便在后端使用另一个工具,如果这会影响我应如何对数据进行建模。 –

回答

0

我可能会去描述一个“不喜欢标准”的典范:

class DislikeElement(models.Model): 
    item = models.ForeignKey(Item) # Item is the model corresponding to your first table 
    field_name = models.CharField() # e.g. "Model", "Year born"... 
    value = models.CharField() # e.g. "Mustang", "1960"... 

您将有相当多的,你可以检索哪些数据的灵活性。例如,要获得给定物品的所有不喜欢的元素,你只需要做一些事情,如item.dislikeelements_set.all()

此解决方案的唯一问题是,您将在同一数据类型下存储value数字,字符串,日期...。但也许这对你来说不是问题。

+0

这将是一个问题。如果数据库中有200辆汽车,我需要能够过滤汽车,然后根据制造年份对它们进行分类。 –

+0

@JustinJansen我看到了两种解决方案:您可以在上面的模型中添加几个字段来描述这个值,并根据您的目的使用其中的任何一个。或者你可以创建不同的模型:DislikeCharElement DislikeIntElement Django没有提供任何动态创建数据库表的方法,你可以自己实现它。 – mimo

+0

所以,如果我走了这条路线,但重要的是数字是数字(如年),如果某些字段是字符串,但其他字母是数字,它会是什么样子 –

相关问题