Django:防止模型上的 QuerySet 删除?
Posted
技术标签:
【中文标题】Django:防止模型上的 QuerySet 删除?【英文标题】:Django: preventing QuerySet deletions on a model? 【发布时间】:2011-04-18 07:23:52 【问题描述】:我有一个模型,它的 delete() 方法被我覆盖了。因为这不是在批量 QuerySet 删除时调用的,所以我想禁用 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()
【讨论】:
以上是关于Django:防止模型上的 QuerySet 删除?的主要内容,如果未能解决你的问题,请参考以下文章