Back to questions
Junior — Middle
51
Каким образом реализовать поведение при удалении записи в таблице, которая связана с другой через on_delete?
Answer from AI
sobes.tech AI
В Django, чтобы задать поведение при удалении записи, связанной с другой через внешний ключ, используется параметр on_delete в поле ForeignKey. Например:
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=100)
Значения on_delete могут быть:
models.CASCADE— при удалении родителя удаляются все связанные записи;models.PROTECT— запрещает удаление родителя, если есть связанные записи;models.SET_NULL— при удалении родителя устанавливает поле в NULL (требуетсяnull=True);models.SET_DEFAULT— устанавливает значение по умолчанию;models.DO_NOTHING— ничего не делает, что может привести к ошибкам целостности.
Таким образом, on_delete определяет, что происходит с зависимыми записями при удалении связанной записи.