首页 > 解决方案 > django的delete()函数中的False有什么用?

问题描述

我正在对 4 年前的 django 项目进行代码重构,遇到了让我感到困惑的语法。

他们将一个布尔参数传递False给 django ORM,例如object.delete(False).

我检查了delete()django ORM 中的功能文档。但找不到False它的参数。

并且 Django 模型中没有方法覆盖delete()方法。

这个False参数是干什么用的?

Django version: 1.11.29

标签: djangodjango-modelsdjango-rest-frameworkormdjango-views

解决方案


第一个参数正在使用,将其设置为 False 或默认设置为 None 没有区别

源头

def delete(self, using=None, keep_parents=False):
    using = using or router.db_for_write(self.__class__, instance=self)
    assert self._get_pk_val() is not None, (
        "%s object can't be deleted because its %s attribute is set to None." %
        (self._meta.object_name, self._meta.pk.attname)
    )

    collector = Collector(using=using)
    collector.collect([self], keep_parents=keep_parents)
    return collector.delete()

推荐阅读