【问题标题】:Django: preventing QuerySet deletions on a model?Django:防止模型上的 QuerySet 删除?
【发布时间】:2011-04-18 07:23:52
【问题描述】:

我有一个模型,它的 delete() 方法被我覆盖了。因为这不是在批量 QuerySet 删除时调用的,所以我想禁用 QuerySet 删除或以某种方式断言它不会发生。有什么办法吗?

【问题讨论】:

    标签: django model django-queryset


    【解决方案1】:

    您可以创建一个自定义的QuerySet 类并在管理器中使用它,例如:

    from django.db import models
    
    class NoDeleteQuerySet(models.query.QuerySet):
        def delete(self):
            raise NotImplementedError("can't delete this queryset")
    
    class NoDeleteQuerySetManager(models.Manager):
        def get_query_set(self):
            return NoDeleteQuerySet(self.model)
    
    class MyModel(model.Model):
        objects = NoDeleteQuerySetManager()
    

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 2013-01-07
      • 1970-01-01
      • 2016-12-12
      • 2019-12-30
      • 1970-01-01
      • 2014-01-13
      • 2020-10-01
      • 1970-01-01
      相关资源
      最近更新 更多