Django soft-delete软删除
来源:互联网 发布:金十数据安卓手机版 编辑:程序博客网 时间:2024/05/16 07:49
何为软删除
软删除,简单的说,就是当执行删除操作的时候,不正真执行删除操作,而是在逻辑上删除一条记录。这样做的好处是可以统计数据,可以进行恢复操作等等。
Django中的简单实现
在django中,实现这个功能很简单,我们采用一个字段用来保存删除的时间。若记录没有被删除,那么设置该值为None,如果被删除,那么设置时间为删除的时间。
class BaseSchema(models.Model): createdAt = models.DateTimeField("创建时间",auto_now_add=True) updatedAt = models.DateTimeField("更新时间",auto_now=True) deletedAt = models.DateTimeField("删除时间",null=True,default=None) def delete(self, using=None, keep_parents=False): self.deletedAt = timezone.now() self.save()
上面是一个基类,正真的模型是继承自它,这样可以记录下创建时间,每次会自动更新更新时间,并且实现了软删除。
可以看到,重写了delete方法,当执行删除操作的时候(例如:User.objects.get(id=1).delete()
),会在里面更新属性deletedAt
的值,然后保存,并不会正真删除记录。
所以你在取得元素的时候,要注意一些,需要使用filterUser.objects.filter(deletedAt=None)
,而不是all()
阅读全文
0 0
- Django soft-delete软删除
- delete删除
- soft
- soft
- Azure Mobile Services - Notes of Soft Delete feature
- delete删除行
- delete cascade 级联删除
- delete 删除语句
- DELETE 删除性能优化
- 删除备份--DELETE命令
- file.delete()不能删除
- DELETE 删除性能优化
- file delete删除不成功
- SecureCRT delete删除出错
- delete删除数据
- thinkphp删除delete操作
- 使用delete删除指针
- perl DELETE 删除索引
- linux帧缓冲(framebuffer)驱动
- 安卓设置某些文字的字体颜色
- 如何维护Http协议状态
- 为什么不能用memcached存储Session
- 字符串进制转换
- Django soft-delete软删除
- python学习(13)——面向对象高级编程
- Hadoop好友推荐系统-数据表的初始化
- java.lang.IllegalArgumentException: An invalid character [44] was present in the Cookie value
- NDK开发,如何配置 debug环境
- 常用的开源库
- 用JAVA代码实现下载网络上的资源
- 数据库常见死锁原因及处理
- SQL Server基本语句