通用的Django对象审核应用
项目描述
简介
django-moderation 是一个适用于Django框架的可重用应用程序,允许审核任何模型对象。
可能的用例
用户创建其个人资料,个人资料在网站上不可见。当版主批准时,个人资料将在网站上可见。
用户更改其个人资料,旧的个人资料数据在网站上可见。新数据将在版主批准后在网站上可见。
功能
可配置的admin集成(在admin中更改的数据可以在版主批准后在网站上可见)
admin中的审核队列
对象版本之间的HTML差异
可配置的电子邮件通知
自定义模型表单,允许编辑对象更改的数据
为选定的用户组或用户类型自动批准/拒绝
在普通对象页面支持 ImageField 模型字段
100% PEP8 代码正确
测试覆盖率 > 80%
需求
Python 3.6, 3.7, 3.8, 3.9
Django 2.2, 3.1, 3.2
已知问题
模型中的 m2m 关系目前不受支持
文档
完整文档托管在 ReadTheDocs django-moderation
贡献者
特别感谢所有为该项目做出贡献的人。
感谢所有想法、错误修复、补丁、维护。
变更日志
0.1 alpha (2010-03-11)
初始发布
新增功能
可配置的admin集成(在admin中更改的数据可以在版主批准后在网站上可见)
admin中的审核队列
对象版本之间的HTML差异
可配置的电子邮件通知
自定义模型表单,允许编辑对象更改的数据
0.2 (2010-05-19)
添加了封装特定模型审核选项的 GenericModerator 类。修改了 register 方法,它将只获取两个参数:模型类和设置类。
添加了注册具有多个管理器的模型的选项。
添加了 GenericModerator 类的选项:auto_approve_for_superusers、auto_approve_for_staff、auto_approve_for_groups、auto_reject_for_anonymous、auto_reject_for_groups。添加了检查自动审核的方法。
添加了 automoderate 辅助函数。
修改了 ModerationManager 类中的 moderated_object 属性,审核对象仅在数据库中获取一次,之后将缓存到 _moderated_object 中,修复了在 ModeratedObject 模型的 changed_by 属性上未设置用户对象的问题。
修复了加载模型类注册了审核的对象的 fixtures 时的问题。现在在从 fixtures 加载对象时不会创建审核对象。
修复了在生成具有非 Unicode 值的字段(例如 DateField)的模型实例之间的更改差异时发生的 TypeError。
修复了在 django-moderation 安装之前的模型类中访问对象时的问题。
修复了当注册了审核的多个模型并且多个模型实例具有相同的 pk 时的问题。
修复了在自动审核中使用时多个模型保存的问题。自动审核在 ModeratedObject 的 save 方法中已被移动到单独的方法。
添加了仅显示在审核队列中注册的内容类型的 admin 过滤器。
修复了为未创建审核对象的实体创建模型表单时的问题。
添加了将更改的对象传递到 GenericModerator 类的 is_auto- 方法中的可能性。这将允许更有用的自定义自动审核。例如,如果 akismet 审查返回 True,则自动拒绝。
添加了提供自定义自动拒绝/批准原因的能力。
在 GenericModerator 类中添加了 bypass_moderation_after_approval 选项,该选项将在对象初始批准后释放对象从审核系统中。
其他错误修复和代码重构。
0.3.2 (2012-02-15)
在 GenericModerator 类中添加了 visibility_column 选项。当排除不应公开的对象时,提高数据库查询性能。字段必须是 BooleanField。决定哪些模型对象在拒绝时应被排除的管理器将首先使用此选项来正确显示(或隐藏)已注册的审核对象。如果可以定义模型中的可见性列并且想要提高性能,请使用此选项。默认情况下,访问处于审核中的模型对象时,查询集中的每个对象都会执行一个额外的查询,以确定对象是否应从查询集中排除。此方法对那些不想向其模型添加任何字段的人有益。默认值:None。关闭 #19
添加了对在审核对象页面支持 ImageField 模型字段的兼容性。
使审核与 south 和 grappelli 一起工作
添加了从审核更改列表中排除字段的选项。关闭 #23
将 ModerationManager 类移动到 moderation.register 模块,将 GenericModerator 类移动到 moderation.moderator 模块。
添加了自动发现功能,可以发现所有包含moderator.py模块的模块,并自动注册其中包含的所有模型进行审核。
效率提升:在两个SQL请求中获取所有过滤查询集所需的信息,而不是为查询集中的每个对象分别请求一次。
添加了south迁移
添加了对外键更改的支持
添加了对多表继承的支持
添加了visible_until_rejected功能
在BaseModeratedObjectForm中添加了特定的缩写
添加了指定审核字段列表的可能性
修复了当用户没有电子邮件时发送消息进行审核时SMTPRecipientsRefused的问题。关闭#48
在管理审核队列中添加了内容类型列表的排序
0.3.3 (2013-10-14)
测试重构
添加了Travis CI
添加了CONTRIBUTING GUIDE
0.3.4 (2013-10-18)
弃用了对django 1.2.X的支持
0.3.5 (2014-06-02)
添加了消息后端
添加了对自定义用户模型的支持
添加了对django 1.6.X的支持
0.3.6 (2014-06-09)
添加了对python 3.X的支持
弃用了对python 2.5的支持
弃用了对django 1.3的支持
添加了对ForeignKey关系支持
0.4.0 (2016-08-25)
更新以支持Django 1.7 - 1.9
添加了从South迁移到Django 1.7+迁移的说明
改进了Django 1.8+的过滤逻辑,只为查询集创建一个额外的查询,而不是为N个额外的查询(例如:为查询集中的每个对象创建一个额外的查询)
将模型字段重命名为更短、更少冗余且更具语义性
修改注册以添加一个moderation_status快捷方式到注册的模型
添加了对同时审核多个对象的支持
将模型选择字段更改为使用来自django-model-utils的Choices
弃用了DJANGO_MODERATION_MODERATORS设置,转而使用MODERATION_MODERATORS,它执行相同的功能
改进了默认电子邮件模板的格式化
PEP8和Flake修正
内部代码和文档中的错别字修正
错误修复(特别是,关闭#87)
0.7.0 (2019-03-11)
弃用了Django<1.11的支持。现在它只支持Django>=1.11,<=2.2
弃用了Python2。现在它只支持Python 3.5,3.6,3.7
文档的微小更改
0.8.0 (2022-04-09)
弃用了Django<2.2的支持。现在它只支持Django>=2.2,<=4
弃用了Python 3.5的支持。现在它只支持Python 3.6,3.7,3.8,3.9
弃用了DJANGO_MODERATION_MODERATORS设置
使用black格式化代码
弃用了我们用于Choices功能的依赖项django-model-utils
添加了对Django 4.0的局部支持 - 删除ugettext,将smart_text更改为smart_str,将模板标签ifequal更改为if。
项目详情
django-moderation-0.8.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 804a8e12eea9465f6a7426c6ecb449d1a40c7287f0e4dbfbd752bc5e6e541336 |
|
MD5 | 0fcae7b8ad65b751509a245590c7ddd2 |
|
BLAKE2b-256 | 54a00b79ca5573e338baa0dbbbd830402ae146c09c0f8cb458f7d521eb84b0d2 |
django_moderation-0.8.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 919041b44259509ed34f1146356ae8f9bcad6fd63c34b866b621171c474c4303 |
|
MD5 | 40f123890ed32551ae4d894bbef5b721 |
|
BLAKE2b-256 | 599e47acd3d546e6779ffb559b2d8d7ed3d48b3b88608b090ea4128bbc043770 |