"django视图中的未知列'user_id'错误

rks*_*rst 5 python django model view django-models

我有一个错误,我不知道是什么导致它.

这是错误:

Exception Type:     OperationalError
Exception Value:    
(1054, "Unknown column 'user_id' in 'field list'")
Run Code Online (Sandbox Code Playgroud)

有谁知道我为什么会收到这个错误?我无法弄清楚.一切似乎都很好.

我的观看代码如下:

if "login" in request.session:
    t = request.POST.get('title', '')
    d = request.POST.get('description', '')
    fid = request.session["login"]
    fuser = User.objects.get(id=fid)
    i = Idea(user=fuser, title=t, description=d, num_votes=1)
    i.save()
    return HttpResponse("true", mimetype="text/plain")
else:
    return HttpResponse("false", mimetype="text/plain")
Run Code Online (Sandbox Code Playgroud)

我感谢任何帮助!谢谢!

编辑:也是一个问题.我是否使用objects.get(id =或objects.get(pk =?如果我使用主键,我是否需要在模型中声明id字段或索引?

编辑:以下是相关型号:

class User (models.Model):
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
    email = models.CharField(max_length=200)
    password = models.CharField(max_length=200)

class Idea (models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=200)
    description = models.CharField(max_length=255)
    num_votes = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

S.L*_*ott 6

  1. user_id字段是从FK参考IdeaUser.看起来你已经改变了你的模型,而没有更新你的数据库,那么你就会遇到这种问题.

    删除旧表,重新运行syncdb.

  2. id默认情况下,模型表会获得一个字段.您可以id在查询中调用它.您也可以使用同义词pk.

    如果您定义自己的主键字段,则不会获得自动id字段.但您仍然可以使用它pk来引用主键.


Ned*_*der 4

您必须展示您的模型才能获得真正的帮助,但您的 Idea 表似乎没有 user_id 列?你修改了SQL表结构吗?

  • syncdb 不会更改表结构,它只能创建不存在的表。因此,如果您更改模型,您仍然会有旧表,并且需要删除表并再次重新创建它们(或手动更改它们)。 (2认同)