我有一个模型,我已经重写了其 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()
关于Django:防止模型上的查询集删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3813142/