Как использовать приложение django-scheduler в существующем приложении

Я ищу приложения django для обработки событий типа "Календарь задач", а пример проекта django-schedule предоставляет пример проекта, но я не знаю, как сопоставить мой класс Task (title & startTime) с классом событий расписания django. Документация не дает понять, как я могу это сделать? Будет действительно полезно, если некоторые указатели или шаги могут быть предоставлены здесь, чтобы использовать приложение django-schedule с существующим приложением

Решение здесь Использование приложения планировщика Django с вашими собственными моделями присутствует, но я не могу многого из этого извлечь. Я ищу какой-то учебник о том, как подключить Django-планировщик к моей собственной модели

1 ответ

Решение

Нашел этот хороший разговор в интернете https://groups.google.com/forum/ и со ссылками объясню логику, как показано ниже:

  1. Предположим, что у вашего класса задач есть startDateTime & endDateTime & Title
  2. из schedule.models import Event, EventRelation, Calendar (Исходя из приложения Schedule)
  3. Переопределите метод save объекта Task, чтобы создать новое событие, как показано ниже, изменив код, указанный в ссылке выше, чтобы сделать его более понятным
  4. Код ищет существующий календарь и присоединяет к нему событие, которое связано с объектом задачи через связь
  5. Попробовал приведенный ниже код для расширения приложения Project-Sample, поставляемого с исходным кодом, и он работал нормально

    def save(self, force_insert=False, force_update=False):
        new_task = False
        if not self.id:
            new_task = True
        super(Task, self).save(force_insert, force_update)
        end = self.startDateTime + timedelta(minutes=24*60)
        title = "This is test Task"
        if new_task:
            event = Event(start=self.startDateTime, end=end,title=title,
                      description=self.description)
            event.save()
            rel = EventRelation.objects.create_relation(event, self)
            rel.save()
            try:
                cal = Calendar.objects.get(pk=1)
            except Calendar.DoesNotExist:
                cal = Calendar(name="Community Calendar")
                cal.save()
            cal.events.add(event)
        else:
            event = Event.objects.get_for_object(self)[0]
            event.start = self.startDateTime
            event.end = end
            event.title = title
            event.description = self.description
            event.save()
    

По-прежнему приходится искать расширение функциональности Click в событии Calendar, которое в настоящее время дает текстовое поле, как настроить его с помощью гиперссылки, еще предстоит выяснить, но приведенный выше код отвечает на вопрос и часть проблемы.

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