在Django调度器应用中使用自定义模型

8 投票
2 回答
5595 浏览
提问于 2025-04-18 10:29

我想用这个django-scheduler工具,把我自己的模型放进日历里,因为我的模型也有开始和结束日期。

我觉得有几种方法可以解决这个问题:

  1. 修改现在的日程应用,让它能和我的模型互动。
  2. 在创建我的模型时,自动生成默认的事件模型,使用save()这个方法来实现。
  3. 利用django-scheduler应用的“事件与通用对象的关系”功能。
  4. 扩展默认的事件模型,让它符合我的需求。

我想用第三种方法,但我不知道怎么用,因为日历是和单个对象关联的。

我对Python和Django都很陌生,有人能给我点建议吗?

2 个回答

2

Django Scheduler 有一个比较隐蔽的设置(甚至在官方文档中都没有提到),可以解决这个问题:

SCHEDULER_BASE_CLASSES

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

所以,你可以定义自己的抽象模型,然后让日历(Calendar)去扩展它。

编辑

正如 @Jheasly 在评论中提到的,这个功能现在已经有文档说明了。

4

为了实现选项3,你的通用对象需要有一个外键,这个外键指向那个日历应用中的一个Event对象。

撰写回答