当我尝试从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。它是一样的。
注意:如果需要任何其他数据;我可以添加它。
答案 0 :(得分:1)
尝试为blank=True, null=True
和link_karma
设置comment_karma
。您没有将任何值传递给这些字段,因此当您的create语句尝试创建对象时,它不知道要给出link_karm
什么,因此错误。
正如goliney正确指出的那样,您不需要在User_Profile模型中使用电子邮件,因为用户已经拥有它。