通过Django时找不到Postgresql View

时间:2018-12-17 22:22:31

标签: django postgresql

我的数据库设置使search_path仅是my_path,因此SHOW search_path仅显示my_path

我有一个视图,该视图存在于同一数据库的public模式中。叫my_view,所以我在查询中所做的是

SELECT * FROM my_path.some_table a
JOIN public.my_view b
ON ......

和django总是抱怨relation "public.my_view" does not exist

当我手动执行此操作时(直接在postgres上,将搜索路径设置为仅查看my_path,然后运行相同的命令),此查询有效,但经过Django(也在Django shell中进行了测试,结果相同),以某种方式使其结果不同。

我的问题是为什么。它与设置有关吗?为什么相同的设置(或我相信的设置)可以在手动模式下工作但不能在Django上工作?

此外,如果我运行查询以从表而不是视图中获取数据,则它可以工作。似乎是特定于视图的问题?

编辑:

使用

SELECT * FROM pg_catalog.pg_views where schemaname='public';

不返回任何内容。出于某种原因,django根本看不到该视图

编辑2:

在python上通过psycopg2进行操作也可以。可以找到my_view。我认为这是Django问题。但是在1.8版之后,我们应该可以看到所有视图,对吧?

0 个答案:

没有答案