2011-06-08 58 views
2

有沒有辦法讓syncdb忽略特定的表?Django的syncdb忽略特定的模型

我決定宣佈一個M2M兩次,因爲我希望它從一個模型中看起來像一個簡單的M2M,它可以與filter_horizo​​ntal一起使用。在另一個我添加了直通領域,並顯示在內聯。我使用db_table來使簡單的表通過表使用相同的。這一切都很好,但在syncdb中,我總是在第一次運行時出錯,因爲它認爲它必須創建表兩次,但它已經第二次存在。在我開始測試創建測試數據庫並失敗之前,這不是問題。也許我只是一個白癡使用這個黑客。無論如何,要讓Django忽略這個錯誤,或者指定不第二次通過表創建m2m?

+0

這是您的問題的創造性解決方案;我會給你的。但是,我認爲你運氣不好。你唯一可以做的就是猴子補丁syncdb管理命令,這不是一個好主意。也許你應該在你的問題中加入你實際想要達到的目標/爲什麼你要這樣設置它。也許有人會有更好的想法如何實現這一點。 – 2011-06-08 16:58:44

+0

你可以在整個項目中重命名其中的一個嗎?還是他們都從相同的數據中拉出來?這兩種方式似乎都不是好的情況/設計,但我暫時沒有太多的建議。 – 2011-06-08 18:54:41

+0

他們從相同的數據拉。在一個模型中獲得橫向過濾器並且在其他模型中使用通過域的內聯是一件很快的事情。我知道我可以做到這一點更合適和耗時的方式,這正是我想要的只是一行代碼。當然,如果它需要修補syncdb ......那麼它可能比它的價值更重要。 – Bufke 2011-06-09 15:57:03

回答

2

我結束了使用模型元選項managed = False使syncdb忽略模型。然後使用initial sql data手動爲表格創建sql。如果我可以告訴Django只有許多不需要管理的字段,我不需要編寫自定義的SQL,但這是不能完成的。