跳转到主要内容

Django工具,封装dateutil.rrule

项目描述

django-recurrence

GitHub PyPI release Supported Python versions Supported Django versions Documentation GitHub actions Coverage

django-recurrence 是一个用于在 Django 中处理周期性日期的实用工具。

功能

  • 使用 rfc2445 的子集(封装 dateutil.rrule)的周期/规则对象,用于指定周期性日期/时间,

  • RecurrenceField 用于在数据库中存储周期性日期时间,以及

  • JavaScript 小部件。

RecurrenceField 提供了一个 Django 模型字段,用于将周期性信息序列化以存储在数据库中。

例如 - 假设你正在你的应用程序中存储有关大学课程的信息。你可以使用这样的模型

import recurrence.fields

class Course(models.Model):
    title = models.CharField(max_length=200)
    start = models.TimeField()
    end = models.TimeField()
    recurrences = recurrence.fields.RecurrenceField()

你会注意到我正在存储自己的开始和结束时间。周期字段只处理 周期性 而不是具体的时间信息。我有一个下午 2 点开始的活动。其周期性将是“每个星期五”。

文档

有关安装和配置的更多信息,请参阅以下文档:

https://django-recurrence.readthedocs.io/

问题

如果你在使用应用程序时遇到问题或有疑问,请在以下位置提交错误报告:

https://github.com/django-recurrence/django-recurrence/issues

贡献

欢迎所有贡献!

最好将建议的更改和 PR 分成小而明确的补丁,以便它们可以更快地合并到上游并更快地发布。

组织贡献的一种方式是分别对例如进行 PR

  • 错误修复,

  • 新功能,

  • 代码和设计改进,

  • 文档改进,或者

  • 工具和 CI 改进。

合并贡献需要通过 CI 配置的检查。这包括在当前官方支持的 Python 和 Django 版本上成功运行测试和代码检查器。

测试自动化是使用 GitHub Actions 自动运行的,但您可以在推送提交之前使用 tox 命令在本地运行它。

更改

1.11.1 (2021-01-25)

  • 修复 reStructuredTest 语法以符合 PyPI 标准。

1.11.0 (2021-01-21)

  • 添加 Django 4.0 和 Python 3.10 支持。弃用已结束的生命周期的 Django 和 Python 版本。[aleksihakli]

  • 修复了 weekday 反序列化类型错误。[apirobot]

  • 修复了默认的 recurrence.language_code 没有设置的问题,通过在前端使用 en-us 作为默认的区域设置。[jleclanche]

1.10.3

  • 添加了匈牙利本地化 #161。

1.10.2

  • 添加了希伯来语本地化 #159。

1.10.1

  • 更新 jQuery 路径以与 Django 管理员提供的路径匹配 #148。

1.10.0

  • 修复并正式支持 Django 2.1 和 2.2 #143, #142;

  • 移除对 Python 2.7 和 3.5 的支持,移除对 Django 2.0 的支持 #145。

1.9.0

  • 修复了在管理员内联中使用周期小部件的问题 #137。

1.8.2

  • 对 Django 2.0 的微小修复 #134;

  • 微小的打包修复 #135。

1.8.1

  • 错误发布,请勿使用。

1.8.0

此版本包含两个不向后兼容的更改 - 请参阅以下说明以获取详细信息。

  • django-recurrence 现在在大多数情况下返回时区感知的 datetime 对象 #130。如果 USE_TZTrue(默认情况下与库存 Django 安装一起关闭),则现在将从 django-recurrence 返回时区感知的 datetime 对象。如果你将 USE_TZ 设置为 True,并且你不希望这种行为,可以将 RECURRENCE_USE_TZ 设置为 False,但请通过 GitHub issues 告知我们(你希望退出),这样我们就可以了解你的用例。

  • RecurrenceField 实例在没有 required=False 的情况下现在至少需要一个规则或日期。此更改旨在使 django-recurrence 的行为与自定义字段的行为一致。如果您不想至少要求一个规则或日期,只需在您的字段上设置 require=False 即可 #133。

  • 避免内联样式的改进 #85;

  • 处理 Django 2 中的 javascript_catalog 的更改 #131。

1.7.0

  • 放弃对 Django 版本 1.7、1.8、1.9 和 1.10 的官方支持;

  • 修复将 None 保存到 RecurrenceField 导致 TypeError 的问题 #89,#122;

  • 放弃对 Python 3.3 和 Python 3.4 的官方支持;

  • 对 Python 3.7 的临时支持(仅适用于 Django 2.0 及更高版本);

  • 确保在 Django 小部件上使用 render 时始终传递 renderer 参数,以确保对 Django 2.1 的支持 #125;

  • Django 2.0 兼容性修复:与 Django REST framework 一起使用 django-recurrence #126。

1.6.0

  • 针对 Python 3 的修复 #105;

  • 支持 Django 2.0 #109,#110;

  • 将一些 DeserializationError 实例切换回 ValidationError #111;

  • 调整日期选择器小部件中设置日期的方式,以避免与短月份相关的问题 #113。

1.5.0

  • 添加斯洛伐克语翻译 #98;

  • 添加对在月底前固定时间发生的事件的支持 - 例如,月底前的第二个星期二 #88;

  • 添加少量样式更改,使 django-recurrence 与 Wagtail 兼容 #100;

  • 允许通过在 RecurrenceField 上设置 include_dtstart=False 来更改默认情况下生成重复事件的行为。您可以通过在您的 RecurrenceField 上设置 include_dtstart=False 来选择加入此功能 #93;

  • 确保在预期的地方引发 DeserializationError 以处理无效值 #103。

1.4.1

  • 使 PO-Revision-Date 可由 babel 解析 #75;

  • 更新安装说明以涵盖 Django 1.10 #74;

  • 添加德语翻译 #77;

  • 添加葡萄牙语翻译 #79;

  • 确保在安装时包含迁移 #78;

  • 修复 to_dateutil_rruleset 参数的顺序 #81。

1.4.0

  • 改进我们的测试设置,以涵盖 Python 3.5;

  • 针对 Django 1.10 的修复 #69。

1.3.1

  • 添加巴斯克语翻译 #67。

1.3.0

  • 放弃对 Django 1.4、Django 1.5、Django 1.6 和 Python 2.6 的官方支持(没有进行任何更改以故意破坏旧版本,但未来将不会测试旧版本);

  • 添加对 Django 1.8 和 Django 1.9 的官方支持 #62;

  • 修复了创建 Rule 时的问题,其中 weekday 参数是 Weekday 实例而不是整数 #57。

1.2.0

  • 为事件添加了一个选项,使其发生在给定月份的星期几的第四天 #29;

  • 修复了每年定期发生的事件的 to_text 方法中的偏差错误 #30;

  • 修复了 JavaScript 小部件中的错误,该错误会导致在当前日历月份天数少于所选日期的情况下,固定日期的每月事件的日期描述渲染不正确 #31;

  • 添加了法语翻译 #32 - 如果已覆盖小部件 JavaScript 以便没有 recurrence 对象的 language_code 成员,则可能不兼容 #33;

  • 添加了西班牙语翻译 #49。

  • 添加数据库迁移 - 运行 python manage.py migrate recurrence --fake 应该对当前版本足够 - 1.1.0 和 1.2.0 之间的数据库架构没有发生变化;

  • 修复了 Django 1.4 的损坏测试。

1.1.0

  • 添加了实验性的 Python 3 支持。

  • 增加了广泛的测试覆盖率(从 0% 到 81%)。

  • 添加了文档(包括此变更日志)。

  • 移除了 RecurrenceModelFieldRecurrenceModelDescriptor,这些字段似乎已经有一段时间没有按预期工作。

  • 修复了 1.0.3 版本中引入的 bug,该 bug 阻止了 django-recurrence JavaScript 的工作 #27。

  • 如果将 None 保存到 RecurrenceField(其中 null=False)时不要引发 ValueError,以与其他字段类型保持一致 #22。

  • 确保空重复对象为假值 #25。

  • 修复了 to_recurrence_object 中的复制粘贴错误,该错误阻止了排除规则的正确填充。

  • 修复了 create_from_recurrence_object 中的拼写错误,该错误阻止了它与包含或排除规则一起工作。

  • 其他一些非常小的错误修复。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

django-recurrence-1.11.1.tar.gz (133.4 kB 查看哈希)

上传时间

构建分发

django_recurrence-1.11.1-py3-none-any.whl (127.3 kB 查看哈希)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面