我正在尝试创建一个应用,其中所有数据都属于一个用户,用户只能获取自己的数据(例如电子邮件)。我在models.py文件中对此进行建模,如下所示:
from django.contrib.auth.models import User
from django.db import models
...
class Foo(models.Model):
owner=ForeignKey(User, related_name='foos')
似乎工作正常。
python manage.py sql appFoo
显示包含
的sqlCREATE TABLE "appFoo_foo" (
"id" integer NOT NULL PRIMARY KEY,
"owner_id" integer NOT NULL REFERENCES "auth_user" ("id")
...
但是,当我尝试使用
删除我为测试目的而创建的用户时,会出现问题User.objects.exclude(username='root').delete()
并使用内置的django管理应用程序。在任何一种情况下,我都收到一个数据库错误,说表appFoo_foo没有名为owner_id的列。这是在运行syncdb之后。有关为什么会发生这种情况的任何想法?
答案 0 :(得分:0)
我发誓在问这个问题之前我找了相关的问题,但是在我问到它之前我没有看到Database error : no such column: connect_connect.reciever_id。我的问题是一样的。基本上,我在我的模型中添加了一个字段,并期望syncdb相应地修改数据库,但显然它没有。我不得不跑
manage.py reset appFoo
再次跟随syncdb,它就像一个魅力。
编辑:我刚才读到不推荐重置,你可以改用flush。