python - trigger - Django-señales. Ejemplos simples para comenzar
trigger django (2)
Además de la explicación dada por Prashant, también puede usar el decorador de receptor presente en el módulo django.dispatch
.
p.ej
from django.db import models
from django.db.models import signals
from django.dispatch import receiver
class Customer(models.Model):
name = models.CharField(max_length=16)
description = models.CharField(max_length=32)
@receiver(signals.pre_save, sender=Customer)
def create_customer(sender, instance, created, **kwargs):
print "customer created"
Para más información, consulte este link .
Soy nuevo en Django y no puedo entender cómo trabajar con las señales de Django. ¿Alguien puede explicar " señales de Django " con ejemplos simples?
Gracias por adelantado.
Puede encontrar muy buen contenido sobre las señales de django en Internet haciendo una investigación muy pequeña.
Aquí les explicaré brevemente las señales de Django.
¿Qué son las señales de Django?
Las señales permiten que ciertos remitentes notifiquen a un conjunto de receptores que se ha realizado alguna acción
Acciones:
Se llama el método save () del modelo.
django.db.models.signals.pre_save | post_save
Se llama el método delete () del modelo.
django.db.models.signals.pre_delete | post_delete
Se cambia ManyToManyField en un modelo.
django.db.models.signals.m2m_changed
Django inicia o termina una solicitud HTTP.
django.core.signals.request_started | solicitud_finalizada
Todas las señales son instancias de django.dispatch.Signal.
Ejemplo muy básico:
modelos.py
from django.db import models
from django.db.models import signals
def create_customer(sender, instance, created, **kwargs):
print "Save is called"
class Customer(models.Model):
name = models.CharField(max_length=16)
description = models.CharField(max_length=32)
signals.post_save.connect(receiver=create_customer, sender=Customer)
Cáscara
In [1]: obj = Customer(name=''foo'', description=''foo in detail'')
In [2]: obj.save()
Save is called