I have a custom model with a OneToOne relationship with the User (django.contrib.auth.models.User) model;
class Profile(models.Model):
user = models.OneToOneField(User)
And I want to create a new Profile every time a User is created. So I've added a signal;
@receiver(post_save, sender=User)
def _setup_user(sender, **kwargs):
"""
Create a new profile instance for each user
"""
created = kwargs.get('created', False)
user = kwargs.get('instance', False)
if created and user:
profile = Profile(user=kwargs['instance'])
profile.save()
All this is fine, however syncdb throws an error when creating the admin user because the Profile table has not been created yet (I'm using South to manage migrations).
How can I get around this?
EDIT
So, omitting creating a superuser worked;
$ ./manage.py syncdb --noinput
$ ./manage.py migrate
$ ./manage.py createsuperuser