signals.py 667 B

12345678910111213141516
  1. from django.core.mail import EmailMessage
  2. from django.db.models.signals import post_save
  3. from django.dispatch import receiver
  4. from desecapi import models
  5. @receiver(post_save, sender=models.Domain, dispatch_uid=__name__)
  6. def domain_handler(sender, instance: models.Domain, created, raw, using, update_fields, **kwargs):
  7. if instance.is_locally_registrable:
  8. instance.owner.send_email('domain-dyndns', context={
  9. 'domain': instance.name,
  10. 'url': f'https://update.{instance.parent_domain_name}/',
  11. 'username': instance.name,
  12. 'password': models.Token.objects.create(user=instance.owner, name='dyndns')
  13. })