External Mailing List ManagersΒΆ
Upon each successful subscription or unsubscription event, Django Newsletters sends a signal. This allows you to connect outside services.
Both signals provide the same two arguments: email and newsletter. The sender is always the newsletter.
from newsletters.signals import subscription, unsubscription
def print_subscription(sender, email, newsletter, *args, **kwargs):
print "Subscription Event!"
print email, newsletter
subscription.connect(print_subscription)
def print_unsubscription(sender, email, newsletter, *args, **kwargs):
print "Unsubscription Event!"
print email, newsletter
unsubscription.connect(print_unsubscription)
To make sure that newsletters are available, you can also listen to newsletter create and delete signals.
from django.db.models.signals import post_save, pre_delete
from newsletters.models import Newsletter
def create_external_list(sender, instance, created, *args, **kwargs):
if created:
external_service.create_list(sender.name, sender.id)
post_save.connect(create_external_list, sender=Newsletter)
def delete_external_list(sender, instance, *args, **kwargs):
external_service.pre_delete(sender.id)
pre_delete.connect(delete_external_list, sender=Newsletter)