看板 Python 關於我們 聯絡資訊
各位好 我是剛學Python沒多久的新手 最近正在寫一些Django的後端 目前我已經有一個或多個CSV檔上傳到MEDIA_ROOT 我想問的是 如果接著要匯入到Django的Sqlite裡產生Table並顯示 那Model.py裡對應的class應該如何依CSV的Field數目動態產生? 目前想到的是用Row.Count()之類的做 但是要怎麼產生對應的field或新的model就卡住了 另外我不太知道這個產生field的method應該要放到哪裡寫比較好 請各位指教了 P.S 不能預先寫好各個field再放入 因為之後後面有其他檔案(特別是不知道field數量的CSV)上傳的話 就沒用了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.211.60 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1467204006.A.D0D.html
uranusjr: 最簡單直接用 dict 06/29 21:28
uranusjr: 喔不對你是要存到資料庫?這樣根本不可能, 你的資料庫 06/29 21:29
uranusjr: 欄位就不可能動態增減了, 新增欄位是要 migrate 的欸 06/29 21:29
uranusjr: 你需要改用動態 schema 的存取方式, 例如 JSONField 06/29 21:30
uranusjr: http://bit.ly/29c7ONj 06/29 21:30
uranusjr: 或者 CSV 用 HStoreField 應該也滿合適的, 反正都是字串 06/29 21:32
BlgAtlfans: 感謝回答 但是不能直接在views或是form上直接用Create 06/29 22:36
BlgAtlfans: Table{}之類的方式動態新增嗎? 06/29 22:37
billy0131: 除非你動態寫出models.py的內容,不然還是用不了ORM 06/29 23:23
billy0131: 單純看csv欄位寫sql新增table一定沒問題,就是很暴力 06/29 23:24
ihcaoe: 用MangoDB會不會比較符合你的需求? 06/30 14:10
BlgAtlfans: 後來決定用postgresql來做 感謝各位回答 06/30 21:22