你已经设置了一个
on_delete
ForeignKey
OneToOneField
一个布尔值(
True
或
False
). 比如说:
class SomeModel(models.Model):
some_fk = models.ForeignKey(OtherModel, on_delete=False)
不能将其设置为布尔值。可以将中列出的值设置为
documentation
:
CASCADE
,
PROTECT
,
SET_NULL
,
SET_DEFAULT
,
SET(..)
,或
DO_NOTHING
.
严格地说,您也可以实现自己的策略,因为上面列出的策略实际上只是函数。例如
CASCADE
is implemented like [GitHub]
:
def CASCADE(collector, field, sub_objs, using):
collector.collect(sub_objs, source=field.remote_field.model,
source_attr=field.name, nullable=field.null)
if field.null and not connections[using].features.can_defer_constraint_checks:
collector.add_field_update(field, None, sub_objs)
虽然您可能不需要实现您自己的,并从文档中列出的其中一个中选择一个。例如:
class SomeModel(models.Model):
some_fk = models.ForeignKey(OtherModel, on_delete=models.CASCADE)