我目前正在开展一个项目,以实现现有日历应用程序的 Django 接口。日历应用程序将 MySQL 作为后端数据库。
在我们的自定义应用程序中,我们想修改/扩展现有日历应用程序使用的表之一中的数据,例如
# 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使用自定义管理器并覆盖get_query_set功能以触发同步功能。
这是对 Django CustomManagers 的合法使用吗?如果没有,有人可以推荐解决此问题的替代方法吗?