我目前正在开发一个项目来实现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