Django - createsuperuser IntegrityError

时间:2012-10-12 15:22:23

标签: django django-models django-authentication

当我尝试从shell或通过manage.py或Django-Admin页面创建超级用户时;它抛出的错误如:

IntegrityError at /admin/auth/user/add/
null value in column "link_karma" violates not-null constraint

这是我的models.py [用户部分]:

class User_Profile(models.Model):

    user = models.OneToOneField(User)
    link_karma = models.IntegerField()
    comment_karma = models.IntegerField()
    avatar = models.CharField(max_length=100)

    def create_user_profile(sender,instance,created,**kwargs):
        if created:
            User_Profile.objects.create(user=instance)
    post_save.connect(create_user_profile, sender=User)

    def __unicode__(self):
        return self.user.username

我添加了一行到settings.py:

AUTH_PROFILE_MODULE = 'accounts.User_Profile'

在添加此行之前;它是一样的。

注意:我尝试将link_karma字段的类型更改为CharField。它是一样的。

注意:如果需要任何其他数据;我可以添加它。

1 个答案:

答案 0 :(得分:1)

尝试为blank=True, null=Truelink_karma设置comment_karma。您没有将任何值传递给这些字段,因此当您的create语句尝试创建对象时,它不知道要给出link_karm什么,因此错误。

正如goliney正确指出的那样,您不需要在User_Profile模型中使用电子邮件,因为用户已经拥有它。