首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django 1.8 inspectdb命令没有按照文档查看PostgreSQL视图

Django 1.8 inspectdb命令没有按照文档查看PostgreSQL视图
EN

Stack Overflow用户
提问于 2015-05-27 21:38:39
回答 2查看 3.6K关注 0票数 9

我有一个带有PostgreSQL数据库的Django 1.8应用程序。我从命令行运行django检查数据库来检查视图的模型,但是视图没有显示在模型输出中。

以下是版本输出:

代码语言:javascript
复制
17:36 $ python well/manage.py --version
1.8.2

下面是psql所看到的:

代码语言:javascript
复制
\dv
                List of relations
 Schema |             Name              | Type |  Owner  
--------+-------------------------------+------+---------
 public | hospitalizations_over_30_days | view | dwatson
 public | interval_30_days              | view | dwatson
(2 rows)

来自django 1.8.2文件:

代码语言:javascript
复制
New in Django 1.8:
A feature to inspect database views was added. In previous versions, only tables (not views) were inspected.

如何使PostgreSQL视图出现在Django 1.8.2检查to输出中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-06 16:46:35

从Django 1.10开始,只需将单个视图命名为inspectdb命令的参数:

代码语言:javascript
复制
python well/manage.py inspectdb hospitalizations_over_30_days

默认的inspectdb只输出表的models.py,但是可以通过命名视图来单独生成视图的模型。

在Django 2.1及更高版本中,如果您希望inspectdb为所有表和视图生成模型,请使用inspectdb --include-views选项,因为这个问题导致了inspectdb --include-views

代码语言:javascript
复制
python well/manage.py inspectdb --include-views

要在Django 2.0及更低版本中为表和视图生成模型,您必须编辑Django源代码。在Django 2.0中,将django/core/management/commands/inspectdb.py更改为:

代码语言:javascript
复制
tables_to_introspect = options['table'] or connection.introspection.table_names(cursor=cursor, include_views=True)

请注意,生成的模型不会有带有primary_key=True集的字段,您需要手动添加主键。

票数 12
EN

Stack Overflow用户

发布于 2019-07-21 15:57:54

在最近的版本中,可以通过将视图传递给如下命令来包含视图(将检查表和视图):

代码语言:javascript
复制
python manage.py inspectdb --include-views > my_models.py
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30493610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档