作者BlgAtlfans (BLG_Eric)
看板Python
標題[問題] 如何動態產生Model
時間Wed Jun 29 20:40:04 2016
各位好 我是剛學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://webptt.com/m.aspx?n=bbs/Python/M.1467204006.A.D0D.html
1F:→ uranusjr: 最簡單直接用 dict 06/29 21:28
2F:→ uranusjr: 喔不對你是要存到資料庫?這樣根本不可能, 你的資料庫 06/29 21:29
3F:→ uranusjr: 欄位就不可能動態增減了, 新增欄位是要 migrate 的欸 06/29 21:29
4F:→ uranusjr: 你需要改用動態 schema 的存取方式, 例如 JSONField 06/29 21:30
6F:→ uranusjr: 或者 CSV 用 HStoreField 應該也滿合適的, 反正都是字串 06/29 21:32
7F:→ BlgAtlfans: 感謝回答 但是不能直接在views或是form上直接用Create 06/29 22:36
8F:→ BlgAtlfans: Table{}之類的方式動態新增嗎? 06/29 22:37
9F:→ billy0131: 除非你動態寫出models.py的內容,不然還是用不了ORM 06/29 23:23
10F:→ billy0131: 單純看csv欄位寫sql新增table一定沒問題,就是很暴力 06/29 23:24
11F:→ ihcaoe: 用MangoDB會不會比較符合你的需求? 06/30 14:10
12F:→ BlgAtlfans: 後來決定用postgresql來做 感謝各位回答 06/30 21:22