我正在尝试创建一个应用程序,其中所有数据仅属于一个用户,并且用户只使用自己的数据(例如电子邮件)。我在我的 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
显示 sql 包括
CREATE 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 之后。关于为什么会发生这种情况的任何想法?