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

标签 django model django-queryset

我有一个模型,我已经重写了其 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/

相关文章:

php - Laravel 模型返回 "Undefined property: stdClass::$name"

tensorflow - 无法使用tensorflow 2.0.0 beta1保存模型

python - 在 python 中打印时更改列表的格式

python - Django有序序列模型设计

django - 从 Django admin 中隐藏模型属性并手动设置其值

Django - 如何在 queryset .values() 中获取显示名称

Django REST 框架 : require login to view API

r - 如何替换矢量整理器

使用注释的 Django ORMforeignKey 查询集输出

django - 如何消除循环中django查询的低效率?