在Django调度器应用中使用自定义模型
我想用这个django-scheduler工具,把我自己的模型放进日历里,因为我的模型也有开始和结束日期。
我觉得有几种方法可以解决这个问题:
- 修改现在的日程应用,让它能和我的模型互动。
- 在创建我的模型时,自动生成默认的事件模型,使用save()这个方法来实现。
- 利用django-scheduler应用的“事件与通用对象的关系”功能。
- 扩展默认的事件模型,让它符合我的需求。
我想用第三种方法,但我不知道怎么用,因为日历是和单个对象关联的。
我对Python和Django都很陌生,有人能给我点建议吗?
2 个回答
2
Django Scheduler 有一个比较隐蔽的设置(甚至在官方文档中都没有提到),可以解决这个问题:
SCHEDULER_BASE_CLASSES = {
'Event': ['my_app.models.EventAbstract1', 'my_app.models.EventAbstract2']
'Calendar': [my_app.models.CalendarAbstract']
}
所以,你可以定义自己的抽象模型,然后让日历(Calendar)去扩展它。
编辑
正如 @Jheasly 在评论中提到的,这个功能现在已经有文档说明了。
4
为了实现选项3,你的通用对象需要有一个外键,这个外键指向那个日历应用中的一个Event
对象。