Django 的 delete() 函数中的 False 有什么用?
What is the use of False in delete() function in django?
我正在对大约 4 年前的 django 项目进行代码重构,遇到了一种让我感到困惑的语法。
他们向 django ORM 传递了一个布尔参数 False
,例如 object.delete(False)
。
我检查了 Django ORM 中 delete()
函数的文档。但是找不到 False
参数。
并且在 Django 模型中没有覆盖 delete()
方法的方法。
这个 False
参数有什么用?
Django version: 1.11.29
是否偶然传入了第二个参数?或者作为 kwargs keep_parents=False
?
如果是可以参考https://docs.djangoproject.com/en/3.1/ref/models/instances/#django.db.models.Model.delete
编辑:注意到您添加了非常有用的 Django 版本。
我不认为从那时起与 delete
相关的任何变化(可能除了 on_delete
外键定义是必需的)
第一个参数正在使用,将其设置为 False 或默认设置为 None
之间没有区别
来自source
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()
我正在对大约 4 年前的 django 项目进行代码重构,遇到了一种让我感到困惑的语法。
他们向 django ORM 传递了一个布尔参数 False
,例如 object.delete(False)
。
我检查了 Django ORM 中 delete()
函数的文档。但是找不到 False
参数。
并且在 Django 模型中没有覆盖 delete()
方法的方法。
这个 False
参数有什么用?
Django version: 1.11.29
是否偶然传入了第二个参数?或者作为 kwargs keep_parents=False
?
如果是可以参考https://docs.djangoproject.com/en/3.1/ref/models/instances/#django.db.models.Model.delete
编辑:注意到您添加了非常有用的 Django 版本。
我不认为从那时起与 delete
相关的任何变化(可能除了 on_delete
外键定义是必需的)
第一个参数正在使用,将其设置为 False 或默认设置为 None
之间没有区别来自source
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()