如何在现有应用程序中使用django-scheduler app

时间:2014-12-02 00:17:25

标签: python django scheduler

我正在寻找django应用来处理任务日历类事件和django-schedule示例项目提供了一个示例项目,但我不知道如何使用django schedule的事件类来映射我的Task类(title& startTime) 。文档没有说清楚我该怎么做?如果可以在这里提供一些指针或步骤以将django-schedule应用程序与现有应用程序一起使用,那么真的会适用吗

这里的解决方案Using the Django scheduler app with your own models已经存在,但我无法从中获得很多。我正在寻找一些关于如何将django-scheduler挂钩到我自己的模型的教程

1 个答案:

答案 0 :(得分:3)

在互联网https://groups.google.com/forum/#!topic/pinax-users/9NoRWjMdiyM上找到了这个良好的对话,并作为参考将解释如下逻辑:

  1. 假设您的任务类具有startDateTime& endDateTime&标题
  2. 来自schedule.models导入Event,EventRelation,Calendar(来自Schedule app)
  3. 覆盖Task对象的save方法以创建新事件,如下所示,修改上面链接中提供的代码以使其更清晰
  4. 代码查找现有日历并将事件附加到它,通过关系链接到Task对象
  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()
    
  6. 仍然要搜索扩展当前给出文本框的Calendar事件上的Click功能,如何使用超链接自定义还有待查看,但上面的代码回答了问题和部分问题