Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
Python django postgresql查询不工作_Python_Mysql_Sql_Django_Postgresql - Fatal编程技术网

Python django postgresql查询不工作

Python django postgresql查询不工作,python,mysql,sql,django,postgresql,Python,Mysql,Sql,Django,Postgresql,我有一个postgreSQL数据库,它有一个在django之外创建的表foo。我使用manage.py inspectdb为我的表foo构建模型。当我使用MySQL时,这种技术工作得很好,但在PostgreSQL中,它却失败得很惨。这个表有好几GB,我使用PostgreSQL“COPY”从一个文本文件构建它 我可以在表foo上运行原始查询,所有内容都会执行和预期 比如说 foo.objects.raw('bar_sql') 按预期执行 但运行如下查询: foo.objects.get(bar=

我有一个postgreSQL数据库,它有一个在django之外创建的表
foo
。我使用
manage.py inspectdb
为我的表
foo
构建模型。当我使用MySQL时,这种技术工作得很好,但在PostgreSQL中,它却失败得很惨。这个表有好几GB,我使用PostgreSQL“COPY”从一个文本文件构建它

我可以在表
foo
上运行原始查询,所有内容都会执行和预期

比如说

foo.objects.raw('bar_sql')
按预期执行

但运行如下查询:

foo.objects.get(bar=bar)

foo
没有天生的
id
字段。据我所知,django应该创建一个。在django之外创建表时,我有没有破坏过这一步骤

查询在其表已填充的模型上运行,并在所有情况下按预期运行

我在这里遗漏了一些非常基本的东西,任何帮助都将不胜感激


我将django 1.6与postgreSQL 9.3一起使用。

django不会修改现有的数据库表。它只创建新表。如果您有现有的表,它通常根本不会触及它们

“据我所知,django应该创建一个。”-->它只在创建表时向表中添加主键,这意味着您不需要在模型中显式指定主键,但它不会对现有表执行任何操作

因此,如果您稍后决定向模型中添加字段,则必须手动更新数据库


在本例中,您需要做的是,通过手动数据库管理,确保表具有主键,并且主键的名称为“id”(虽然我不确定是否有必要,但最好这样做)。因此,使用数据库管理工具,修改表并添加主键,并将其命名为id。然后它应该开始工作。

您的表和模型看起来如何?Django可能无法识别哪个列是主键,因此它会查找默认的“id”。您的模型应该有一个带pimary_key=true的字段谢谢您的帮助。你完全正确。我从未设置过主键。非常感谢您的帮助。
ProgrammingError column foo.id does not exist LINE 1: SELECT "foo"."id", "foo"."bar1", "all_...