Django:防止删除模型上的查询集?

Django:防止删除模型上的查询集?,django,model,django-queryset,Django,Model,Django Queryset,我有一个模型,我已经覆盖了它的delete()方法。因为这不是对批量QuerySet删除调用的,所以我想禁用QuerySet删除或以某种方式断言它不会发生。有什么方法可以做到这一点吗?您可以创建一个自定义的QuerySet类,并在管理器中使用它,例如: from django.db import models class NoDeleteQuerySet(models.query.QuerySet): def delete(self): raise NotImpleme

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

您可以创建一个自定义的
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()