首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用"delete stamp“和自动级联进行删除

使用"delete stamp“和自动级联进行删除
EN

Stack Overflow用户
提问于 2011-10-24 06:47:50
回答 1查看 320关注 0票数 0

因为我从来不想删除我的USER (BASE)对象,所以我在我的BASE模型上引入了一个delete_date

代码语言:javascript
复制
class BASE (models.Model):

    class Meta:

        abstract = True
        app_label = 'base'
        verbose_name_plural = 'bases'

    objects = BASE_MANAGER ()

    insert_date = models.DateTimeField (default = datetime.now (), auto_now_add = True)
    update_date = models.DateTimeField (default = datetime.now (), auto_now = True)
    delete_date = models.DateTimeField (null = True, blank = True)

    def save (self):

        super (BASE, self).save ()

    def delete (self):

        if not self.delete_date:
            self.update_date = datetime.now ()
            self.delete_date = datetime.now ()
            self.save ()
        else:
            pass ## no delete!

现在,因为我没有在BASE.delete中包含super (BASE, self).delete (),所以没有执行任何实际的SQL,这很好;不幸的是,这也会停止外键的级联。在Django中有一种优雅的方式来实现这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-26 07:39:47

我想我已经找到了我一直在寻找的答案,因为很明显,描述我的用例的实际术语是在soft delete implementation实现的soft delete cascading中描述的“软删除”。

我会看一看的;还是要感谢你的回复。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7869812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档