5

我有一个错误,我不确定是什么原因造成的。

这是错误:

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()
4

3 回答 3

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

    删除旧表,重新运行 syncdb。

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

    如果您自己定义主键字段,则不会获得自动id字段。但是您仍然可以使用pk来指代主键。

于 2008-11-16T01:25:48.870 回答
4

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

于 2008-11-16T01:22:46.350 回答
0

是的,我放下了桌子,一切都很好。但是,您必须实际进入数据库并删除它们。“manage.py flush”或“manage.py reset appname”不会自己做。

-尼克·奥

于 2009-12-31T03:01:31.980 回答