Sobes.tech
Junior — Middle

Můžete uvést hlavní signály používané v Django a vysvětlit jejich účel?

sobes.tech AI

Odpověď od AI

V Django se používají signály k upozornění různých částí aplikace na výskyt určitých událostí. Hlavní signály:

  • pre_save — je volán před uložením objektu modelu.
  • post_save — je volán po uložení objektu modelu.
  • pre_delete — je volán před odstraněním objektu.
  • post_delete — je volán po odstranění objektu.
  • m2m_changed — je volán při změnách v relacích many-to-many.

Například pomocí post_save lze automaticky vytvářet související objekty nebo odesílat oznámení po vytvoření záznamu.

Příklad použití signálu:

from django.db.models.signals import post_save
from django.dispatch import receiver
from myapp.models import MyModel

@receiver(post_save, sender=MyModel)
def my_handler(sender, instance, created, **kwargs):
    if created:
        print(f"Nový objekt vytvořen: {instance}")