我有一个与用户 (django.contrib.auth.models.User) 模型具有 OneToOne 关系的自定义模型;
class Profile(models.Model):
user = models.OneToOneField(User)
我想在每次创建用户时创建一个新的配置文件。所以我添加了一个信号;
@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()
这一切都很好,但是 syncdb 在创建管理员用户时会引发错误,因为尚未创建 Profile 表(我正在使用 South 来管理迁移)。
我怎样才能解决这个问题?
编辑
因此,省略创建超级用户是可行的;
$ ./manage.py syncdb --noinput
$ ./manage.py migrate
$ ./manage.py createsuperuser