0

当我尝试从 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。它是一样的。

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

4

1 回答 1

1

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

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

于 2012-10-12T16:07:42.340 回答