Junior — Middle
Jaký je účel parametru on_delete v modelech databází?
sobes.tech AI
Odpověď od AI
Parametr on_delete v modelech databází, například v Django ORM, určuje chování při odstranění souvisejícího objektu. Ukazuje, co by mělo být provedeno s objekty, které odkazují na odstraňovaný objekt prostřednictvím cizích klíčů.
Hlavní možnosti on_delete jsou:
CASCADE: při odstranění rodičovského objektu jsou odstraněny všechny s ním spojené podřízené objekty.PROTECT: zakazuje odstranění rodičovského objektu, pokud existují s ním spojené podřízené objekty.SET_NULL: nastaví hodnotu cizího klíče na NULL u spojených objektů.SET_DEFAULT: nastaví hodnotu na výchozí u spojených objektů.DO_NOTHING: neprovádí žádné akce, což může vést k chybám integrity dat.
Příklad:
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)
Zde, pokud je autor odstraněn, všechny knihy tohoto autora budou také odstraněny díky on_delete=models.CASCADE.