我遇到了一个错误,我不确定是什么导致它。
这是错误:
Exception Type: OperationalError
Exception Value:
(1054, "Unknown column 'user_id' in 'field list'")
有谁知道我收到此错误的原因?我无法弄清楚。一切似乎都很好。
我的观看代码如下:
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")
我感谢任何帮助!谢谢!
编辑:也是一个问题。我是否使用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()
答案 0 :(得分:5)
user_id
字段是从Idea
到User
的FK参考。看起来你已经改变了你的模型,没有更新你的数据库,那么你就会遇到这种问题。
删除旧表,重新运行syncdb。
默认情况下,您的模型表会获得id
字段。您可以在查询中将其称为id
。您还可以使用pk
的同义词。
如果您定义了自己的主键字段,则不会获得自动id
字段。但您仍然可以使用pk
来引用主键。
答案 1 :(得分:4)
您必须展示您的模型以获得真正的帮助,但看起来您的Idea表没有user_id列?你修改了SQL表结构吗?
答案 2 :(得分:0)
是的,我放弃了桌子,这一切都很棒。但是,您必须实际进入数据库并删除它们。 “manage.py flush”或“manage.py reset appname”不会自行完成。
-Nick O