django:尝试保存时必须是用户实例,但确实如此!

时间:2010-12-20 00:03:41

标签: django django-models

我确定这可能是一个简单的答案,但我看不出有什么问题!

我只是想保存一条记录,并说它Cannot assign "<User: jason.kinnear>": "Confirmation.user" must be a "User" instance.

这是代码:

u = User.objects.get(pk=18)    
cr = Confirmation(details='...', user=u).save()

提前致谢

编辑: 确认的模型定义

class Confirmation(models.Model):
    number = models.IntegerField(null=True, blank=True)
    user = models.ForeignKey('User')
    details = models.CharField(max_length=250)
    time = models.DateTimeField(auto_now_add=True)

我试过了两次

user = models.ForeignKey('User')

user = models.ForeignKey(User)

我不太确定这种区别是否诚实

编辑2: User类已经像这样扩展:

from django.contrib.auth.models import User as BaseUser
class User(BaseUser):
    """Extra user information"""    
    location = models.ForeignKey('Location', null=True, blank=True)
    defaults = models.CharField(null=True, blank=True)

1 个答案:

答案 0 :(得分:0)

这个问题有一个答案,Ignacio是正确的(在评论中)。导入的User不一样。 Django User扩展了另一个User类,我导入了错误的类。 (伊格纳西奥,如果你想发一个答案,我会把它作为接受的答案)