我正在研究包含不同應用程序(產品,銷售,採購,會計,MRP等)的Django上的小型ERP項目。其中有一些具有依賴性(例如,銷售應用程序需要產品應用程序)。Django:擴展其他應用程序的模型
爲了模塊化和鬆耦合,我試圖保持應用程序儘可能獨立。但是,如果應用程序可以在其依賴關係的模型中擴展(添加新字段)表(例如,Sales會在產品範圍內的其中一個表中添加can_be_sold
布爾值字段),那麼這將非常有用,如果安裝)。
這種方式當用戶在內部選擇安裝應用程序時,數據庫中所需的更改會使其正確地與依賴項集成。用戶只安裝他需要的應用程序,而不必在依賴關係中提供不必要的或無關的信息。
我想與依賴關係建立一對一的關係,但是這個解決方案並沒有說服我,因爲(a)爲一個或兩個額外的字段創建如此多的新表似乎並不是非常有效(b)使用表單和信號將是一件麻煩事(如果安裝了許多應用程序並且總體上減少了模塊化,則使代碼難以保存)。
繼承或抽象類似乎也不合適,因爲我沒有試圖爲子產品創建模型,而是增長或擴展表中的現有信息(條目)。
達到此目的的最佳方法是什麼?我應該考慮編寫自定義遷移操作嗎?否則,有更好的方法嗎?謝謝!
謝謝,但如何將這個正好有助於對現有的應用程序表添加新的領域? – mtcg
您可以根據生成的代碼預測繼承存在dinamicaly,存儲在數據庫中。所以你的代碼永遠不會破壞,如果你沒有在那裏的文件 –