我目前正在開發一個項目來實現Django接口到現有的日曆應用程序。日曆應用程序具有MySQL作爲後端數據庫。Django&定製遺留數據庫
在我們的自定義應用程序中,我們希望修改/擴展現有日曆應用程序使用的其中一個表中的數據,例如,
# Auto-generated by inspectdb - table used by calendar application
class CalendarEvent(models.Model:)
name = models.CharField(max_length=80)
start_time = models.DateTimeField()
end_time = models.DateTimeField()
# Manually created table
class CustomCalendarEvent(models.Model:)
code = models.CharField(max_length=80) # Mapped from name
length = models.DateTimeField() # start_time - stop_time
.... additional data ....
我們也希望我們的數據表示與現有的日曆表,即保持同步,當新的條目在日曆應用程序中反映這些會自動傳播到我們的自定義表。
我可以想到一些明顯的方法來做到這一點(例如,由cron或可能MySQL觸發器啓動的同步腳本),但我不覺得這些解決方案特別優雅。
一種可能性是對CustomCalendarEvent使用Custom Manager並覆蓋功能的get_query_set也會觸發同步功能。
這是Django CustomManagers的合法使用嗎?如果不是的話,任何人都可以推薦一種解決這個問題的方法嗎
感謝您的回覆。開始感覺我在濫用定製管理器的目的。 – Martin 2009-12-10 00:50:43