django日历应用程序。
django-swingtime的Python项目详细描述
欢迎
swingtime是一个Django应用程序,类似于 iCal for Mac OS X或谷歌日历的精简版。
swingtime提供了一个充当元数据容器的models.Event模型 对于一个或多个models.Occurrence对象,它描述 开始和结束时间。
swingtime在很大程度上依赖于datetime标准库包和 dateutil包,直接支持dateutil.rrule 创建引用的接口。
一个相当简单的例子:
>>>fromdatetimeimport*>>>fromswingtimeimportmodelsasswingtime>>>et=swingtime.EventType.objects.create(abbr='work',label='Work Related Events')>>>evt=swingtime.Event.objects.create(...title='New TPS Cover Sheet',...description='Kiss off, Lumbergh!',...event_type=et...)>>>evt.add_occurrences(datetime(2018,3,18,16),datetime(2018,3,18,16,15),count=5)>>>foroinevt.occurrence_set.all():...print(o)...NewTPSCoverSheet:2018-03-18T16:00:00NewTPSCoverSheet:2018-03-19T16:00:00NewTPSCoverSheet:2018-03-20T16:00:00NewTPSCoverSheet:2018-03-21T16:00:00NewTPSCoverSheet:2018-03-22T16:00:00
更详细的例子,使用便利函数models.create_event:
>>># pay day is the last Friday of the month at 5pm>>>evt=swingtime.create_event(...'Pay day',...('pay','Payroll'),# alternate means to add EventType on the fly...freq=rrule.MONTHLY,...byweekday=rrule.FR(-1),...until=datetime(2013,8,1),...start_time=datetime(2013,4,1,17)...)>>>foroinevt.occurrence_set.all():...print(o)...Payday:2013-04-26T17:00:00Payday:2013-05-31T17:00:00Payday:2013-06-28T17:00:00Payday:2013-07-26T17:00:00
演示
要查看演示,click here。
要使用Docker运行本地演示,请执行以下操作:
$ docker build -t swingtime .
$ docker run -p 8000:80 -d swingtime:latest
然后浏览到localhost:8000。
功能
- 支持通过dateutil
- 现成的forms.MultipleOccurrenceForm用于处理复杂输入
- 日视图、月视图和年视图功能
- 基于网格的每日视图生成器,配备交替或顺序 EventTypecss类处理
- 略好于一般文档、一些测试用例和注释代码
- 积极支持(我必须自己吃狗粮)
- 内置演示项目/应用程序
要求
- Python3.4+
- Django 1.11+
- python-dateutil。