В настоящее время я работаю над проектом по реализации интерфейса Django для существующего приложения календаря. Приложение календаря имеет MySQL как БД.Django & customizing устаревшая база данных
В нашем пользовательском приложении мы хотели бы изменить/расширить данные в одной из таблиц, используемых существующим приложением календаря, например.
# 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), но я не чувствую, что эти решения являются особенно элегантными.
Одна из возможностей состоит в использовании Custom Manager для CustomCalendarEvent и переопределить get_query_set функциональные возможности также вызвать функцию синхронизации.
Это законное использование пользовательских менеджеров Django? Если никто не может рекомендовать альтернативный подход к этой проблеме?
Спасибо за ответ.Началось чувство, что я злоупотребляю целью Custom Manager. – Martin