from django.contrib.sites import models as site_app
from django.db.models import signals

def create_site(app, created_models, verbosity, **kwargs):
    from django.contrib.sites.models import Site
    from django.conf import settings
    should_update = False
    
    try:
        site = Site.objects.filter(id__exact=settings.SITE_ID)[0]
        should_update = \
            site.domain != settings.SITE_DOMAIN or \
            site.name != settings.SITE_NAME
    except IndexError:
        should_update = True
    
    if should_update:
        site = Site(id=settings.SITE_ID, 
                    domain=settings.SITE_DOMAIN, 
                    name=settings.SITE_NAME)

        if verbosity >= 1:
            print 'Updating settings of Site "%s" with ID %d and domain %s' % \
                (site.name, site.id, site.domain)
        
        site.save()

signals.post_syncdb.connect(create_site, sender=site_app)
