PonyConf/cfp/signals.py

24 lines
695 B
Python

from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.sites.models import Site
from django.conf import settings
from ponyconf.decorators import disable_for_loaddata
from .models import Conference
@receiver(post_save, sender=Site, dispatch_uid="Create Conference for Site")
@disable_for_loaddata
def create_conference(sender, instance, **kwargs):
conference, created = Conference.objects.get_or_create(site=instance)
# connected in apps.py
def call_first_site_post_save(apps, **kwargs):
try:
site = Site.objects.get(id=getattr(settings, 'SITE_ID', 1))
except Site.DoesNotExist:
pass
else:
site.save()