2016-04-25 165 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

所以,如果我走了這條路線,但重要的是數字是數字(如年),如果某些字段是字符串,但其他字母是數字,它會是什麼樣子 –

相關問題