django-logicaldelete

软件截图:
django-logicaldelete
软件详细信息:
版本: 1.1 Beta 1 Dev3
上传日期: 12 May 15
许可: 免费
人气: 1

Rating: nan/5 (Total Votes: 0)

开发者评论
Django的logicaldelete是一个小而简单的应用程序,我扔在一起,得到一些重用出来的东西我做的几乎每一个项目,每一个模型创建 这太容易了良好的数据被删除,这是不可恢复的。这也太容易通过覆盖模型的delete()方法,只是记录标记为删除,然后利用Django的管理者要覆盖默认行为,以便逻辑删除项查询集不返回来解决这个问题。
有两个例外然而,我发现有用的这条规则。
  1。在管理,我喜欢看到的一切与它是否已被删除的指标,具有过滤下来只主动记录,(或删除为此事)的能力。
  2。我仍然认为这是一个有效的请求,当一个项目是由它的主键值,该对象应该返回,即使它被标记为删除牵强。
使用Django-logicaldelete
使用的应用程序是非常简单的:
  1。把logicaldelete子文件夹在你的Python路径。
  2。从logicaldelete.models.Model继承所有你希望在这个功能来分享模式。
  3。创建和/或注册管理员为每个车型使用logicaldelete.admin.ModelAdmin的
其他
逻辑删除按日期冲压date_removed列处理。此外,一个DATE_CREATED和DATE_MODIFIED列将被填充的方便。
可能的扩展
您可以轻松地继承这两个类提供通用的和有用的功能添加到您的模型。
UUID主键
我通常使用UUID字段我的主键,因为它们使我分片我的表,如果,当我需要,此外,他们提供了一个混淆的ID,以我的数据(人不能确定有多少某个对象我在我的数据库,如果我不想让他们知道,只是看在URL中的整数ID)。
序列字段
很多时候,我发现它有用有一个整数字段在我的模型,允许并明确控制的测序。我通常实现这个作为降序排序的实现,其中的数据是由高排序,以通过低序列值。
为了实现这一点,你会继承这两个模型的ModelAdmin,这里的模式将是一个明显的简单相加的IntegerField的的ModelAdmin,会覆盖get_query_set,做这样的事情:
类SequencedModel(logicaldelete.models.Model):
 序列= models.IntegerField()
类MyLogicalDeletedManager(logicaldelete.models.LogicalDeletedManager):
 高清get_query_set(个体经营):
 如果self.model:
  QS =超(MyLogicalDeletedManager,个体经营).get_query_set()滤波器(date_removed__isnull = TRUE)
 如果SequencedModel在inspect.getmro(self.model):
  QS = qs.order_by(' - 序“)
 返回QS

什么在此版本中是新的

  • 改变一切all_with_deleted上LogicalDeleteManager
  • LogicalDeleteManager从logicaldelete.models搬到logicaldelete.managers

  • 从logicaldelete.models.Model
  • 删除删除一切​​查询集

要求

  • 在Python的
  • Django的

显影剂的其他软件 Patrick Altman

formly
formly

20 Feb 15

nashvegas
nashvegas

14 Apr 15

意见 django-logicaldelete

评论没有发现
添加评论
打开图片!