Внешний ключ Django DB on_delete=CASCADE в сочетании с null=True
Что произойдет, если модель Django будет содержать и on_delete=CASCADE и null=True:
class MyModel(models.Model):
ID = models.AutoField(primary_key=True)
SomeInfo = models.BooleanField(default=False)
SomeInfo2 = models.BooleanField(default=False)
ID_FK1 = models.ForeignKey(OtherModel1, on_delete=models.CASCADE, null=True)
ID_FK2 = models.ForeignKey(OtherModel2, on_delete=models.CASCADE, null=True)
Я вижу записи в DB MyModel с ID_FK2, равным NULL, чего не должно быть.
Именно то, что говорится в документации говорит. null=True
означает, что эти значения могут быть вставлены или обновлены до нулевых значений. Каскадное удаление описывает поведение при удалении связанных объектов.