为模型和Django管理后台提供逻辑删除支持
项目描述
Pinax
Pinax是一个基于Django Web框架的开源平台。它是一个可重用的Django应用、主题和起始项目模板的生态系统。这个集合可以在http://pinaxproject.com找到。
这个应用是作为Pinax生态系统的一部分开发的,但它只是一个Django应用,可以独立于其他Pinax应用使用。
pinax-models
pinax-models 提供了对模型和Django管理后台逻辑删除的支持。
这是一个由Patrick Altman编写的简单应用,用于在几乎每个项目和每个他创建的模型中重用一些东西。好数据被删除且无法恢复的情况太容易发生了。通过重写模型的delete()方法并将记录标记为已删除,然后利用Django的管理器来覆盖默认行为,以便在查询集中不返回逻辑删除的项目,可以轻松解决这个问题。
然而,有两个例外规则是有用的。
在管理后台,显示是否已删除的指示符,并能够过滤到仅活跃记录(或者删除的记录)是很不错的。
当通过主键值获取项目时,即使该项目标记为已删除,返回的对象也是有效的请求。
历史
2015年5月25日,Patrick将django-logicaldelete捐赠给了Pinax,在此过程中,pinax-models诞生,代码被整合到该包中。它仍然只是一个Django应用程序,可以与其他Pinax应用程序相当独立。
安装
pip install pinax-models
使用
使用此应用程序非常简单
将pinax.models添加到您的INSTALLED_APPS中
对于您希望使用此功能的所有模型,从pinax.models.LogicalDeleteModel继承。
使用pinax.models.LogicalDeleteModelAdmin为这些模型中的每一个创建和/或注册管理员。
附加信息
逻辑删除通过给date_removed列添加日期戳来处理。此外,还会填充date_created和date_modified列,以方便使用。
向后不兼容的更改
2.0
重命名为pinax-models,基础模型重命名为LogicalDeleteModel。
1.1
在LogicalDeleteManager上更改everything为all_with_deleted。
LogicalDeleteManager从logicaldelete.models移动到logicaldelete.managers。
从logicaldelete.models.Model中移除了deleted和everything查询集。
文档
pinax-models的文档目前正在建设中。如果您想帮助我们编写文档,请加入我们的Pinax Project Slack团队,并告知我们!Pinax文档可在http://pinaxproject.com/pinax/找到。
贡献
请参阅这篇博客文章http://blog.pinaxproject.com/2016/02/26/recap-february-pinax-hangout/,包括视频,或我们的如何贡献(http://pinaxproject.com/pinax/how_to_contribute/)部分,以了解如何为Pinax做出贡献。有关具体贡献想法,请参阅我们的贡献方式/我们需要帮助的地方(http://pinaxproject.com/pinax/ways_to_contribute/)部分。
如果您有任何问题,我们建议您加入我们的Pinax Slack团队(http://slack.pinaxproject.com),并在那里向我们发送消息,而不是在GitHub上创建问题。当然,在GitHub上创建问题也是有效的,但我们通常能够在Slack上更快地帮助您。
我们还强烈建议您阅读我们的开源和自我关爱博客文章http://blog.pinaxproject.com/2016/01/19/open-source-and-self-care/。
行为准则
为了营造一个友好、包容且无骚扰的社区,Pinax项目有一套行为准则,可在http://pinaxproject.com/pinax/code_of_conduct/找到。我们要求您将每个人视为一个聪明的人类程序员,他们与您一样对Python、Django和Pinax感兴趣。
Pinax项目博客和Twitter
有关Pinax项目的更新和新闻,请关注我们的Twitter账号@pinaxproject,并查看我们的博客http://blog.pinaxproject.com。
项目详情
pinax-models-3.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e92ee4665ccc3a1b31740e5a8dd67ab889a4c893119242d51f7d69542bb59568 |
|
MD5 | 079863aca3609f67dbe4b7a0ad4ccf29 |
|
BLAKE2b-256 | 6157fb70540843159d19e0badd5d782b13ec23d07829a44d01f9a661e8e0a7bd |