Использование приложения планировщика Django с вашими собственными моделями

Используя https://github.com/llazzaro/django-scheduler я бы хотел использовать свои собственные модели в календаре, у них также есть дата начала и окончания.

Я думаю, что есть несколько способов решить эту проблему:

  1. Взломайте текущее приложение расписания, чтобы оно взаимодействовало с моими моделями.
  2. Создание моделей событий по умолчанию при создании моих моделей с помощью переопределения save().
  3. Используйте функцию "отношения событий к общим объектам" в приложении django-scheduler.
  4. Расширьте модели событий по умолчанию, чтобы они соответствовали моим требованиям.

Я хотел бы использовать третий вариант, но я не знаю, как его использовать, поскольку календарь связан с одним объектом.

Я новичок и в Python, и в Django, так может кто-нибудь дать мне совет?

2 ответа

Решение

Для реализации варианта 3 ваш общий объект будет иметь внешний ключ, связанный с Event объект из этого календарного приложения.

Django Scheduler имеет довольно скрытую настройку (даже не указанную в официальных документах), которая может сделать свое дело:

SCHEDULER_BASE_CLASSES

SCHEDULER_BASE_CLASSES = {
    'Event': ['my_app.models.EventAbstract1', 'my_app.models.EventAbstract2']
    'Calendar': [my_app.models.CalendarAbstract']
}

Таким образом, вы можете определить свою собственную абстрактную модель и сделать так, чтобы Calendar расширял ее.

РЕДАКТИРОВАТЬ

Как сказал @Jheasly в своем комментарии, эта функция теперь задокументирована.

Другие вопросы по тегам