Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 为什么django不能创建manage.py sql指定的数据库列_Database_Django - Fatal编程技术网

Database 为什么django不能创建manage.py sql指定的数据库列

Database 为什么django不能创建manage.py sql指定的数据库列,database,django,Database,Django,我正在尝试创建一个应用程序,其中所有数据只属于一个用户,用户只访问自己的数据,例如电子邮件。我在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 s

我正在尝试创建一个应用程序,其中所有数据只属于一个用户,用户只访问自己的数据,例如电子邮件。我在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\u foo没有名为owner\u id的列。这是在运行syncdb之后发生的。关于为什么会发生这种情况,你有什么想法吗?

我发誓在问这个问题之前,我一直在寻找相关的问题,但直到我问了之后,我才明白。我的问题也是一样。基本上,我在模型中添加了一个字段,并期望syncdb相应地修改数据库,但显然没有。我不得不跑

manage.py reset appFoo
接着又是syncdb,它像一个魔咒一样工作

编辑:我刚刚读到,reset不推荐使用,您可以改用flush