Back to questions
Junior — Middle
53
В чем заключается назначение параметра on_delete в моделях базы данных?
Answer from AI
sobes.tech AI
Параметр on_delete в моделях базы данных, например в Django ORM, определяет поведение при удалении связанного объекта. Он указывает, что должно произойти с объектами, которые ссылаются на удаляемый объект через внешние ключи.
Основные варианты on_delete:
CASCADE: при удалении родительского объекта удаляются все связанные дочерние объекты.PROTECT: запрещает удаление родительского объекта, если есть связанные дочерние.SET_NULL: устанавливает значение внешнего ключа в NULL у связанных объектов.SET_DEFAULT: устанавливает значение по умолчанию у связанных объектов.DO_NOTHING: не предпринимает никаких действий, что может привести к ошибкам целостности данных.
Пример:
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
Здесь, если автор удаляется, все книги этого автора тоже будут удалены благодаря on_delete=models.CASCADE.