【问题标题】:django: must be a User Instance when trying to save, but it is!django:尝试保存时必须是用户实例,但它是!
【发布时间】:2010-12-20 00:03:41
【问题描述】:

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

我只是想保存一条记录,上面写着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)

【问题讨论】:

  • 你能告诉我们你的模型定义吗?
  • 它们是否都相同User
  • 你的意思是 Jason.Kinnear 是 18 岁吗?是的,它是同一个用户
  • 不,不是同一个用户。同一个User
  • 是的,抱歉,我的意思是这样。用户 18 是用户 jason.kinnear

标签: django django-models


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 2019-03-21
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多