2012-08-14 79 views
2

我是Django plotform的新手。我試圖編寫一個基本上接受post方法的程序。傳入數據的內容是storename, bookname, bookserial。該部分已經實施並運行良好。當我發佈內容如storename=John's shopping center, bookname=Love is beatiful, bookserial=123。它創建一個表並將這些內容保存到表中。但是,問題是我想爲每家商店創建不僅僅一張桌子。因爲,我可以有多個storename,每個商店都應該有自己的表格。當我在飛機上發佈storename時,應該檢查storename,然後如果它已經創建表,則應該在其表中插入booknamebookserial。如果不是,則應創建一個新表,然後將傳入數據插入新表。新的表名應該也是storename.So,正如我所說的,我只需要學習如何在飛行部分創建新表格。能否請你幫我該怎麼做,任何意見和想法表示讚賞....即時創建新表

一個例子講清楚,

Table-1=John's shopping center 
    bookname=Love is beatiful 
    bookserial=123 

    Table-2= John's shopping center-2 
    bookname=Time is important 
    bookserial=456 

因此,該模型是相同的每個購物中心但是每個的中心是一個與購物中心的名稱不同的表。

+0

你確定每次真的需要一個新表嗎? 「商店」模型在每個模型之間的模式上有很大差異嗎?很遺憾,您無法即時創建模型。 – jdi 2012-08-14 04:58:46

+0

是的,我真的需要每次都有一張新桌子。實際上,每個商店的商店模型都是相同的,但我需要它們在不同的表格上。 – 2012-08-14 05:24:00

回答

1

在傳統意義上,不可能在django中動態創建具體的表格。模型必須註冊爲應用程序啓動的一部分,以便ORM可以正確管理所有關係。考慮如果你定義了一個新的模型來設置約束或backrefs到其他模型會發生什麼。那些其他的模型,已經建立並存儲在內存中。他們不能再通過他們的元類步驟來連接新的關係。你可以很容易地破壞事物。

您的選擇僅限於涉及可動態描述不同實體的少數表的解決方案,或者使用不關心模式的nosql後端,並且可以隨時存儲任何內容。

看到這個問題和答案的詳細信息:Django dynamic model fields

有上飛的具體表的唯一方法是,如果你有Django應用程序重啓本身完全響應。