我有一个带有PostgreSQL数据库的Django 1.8应用程序。我从命令行运行django检查数据库来检查视图的模型,但是视图没有显示在模型输出中。
以下是版本输出:
17:36 $ python well/manage.py --version
1.8.2下面是psql所看到的:
\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文件:
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输出中?
发布于 2017-12-06 16:46:35
从Django 1.10开始,只需将单个视图命名为inspectdb命令的参数:
python well/manage.py inspectdb hospitalizations_over_30_days默认的inspectdb只输出表的models.py,但是可以通过命名视图来单独生成视图的模型。
在Django 2.1及更高版本中,如果您希望inspectdb为所有表和视图生成模型,请使用inspectdb --include-views选项,因为这个问题导致了inspectdb --include-views!
python well/manage.py inspectdb --include-views要在Django 2.0及更低版本中为表和视图生成模型,您必须编辑Django源代码。在Django 2.0中,将django/core/management/commands/inspectdb.py更改为:
tables_to_introspect = options['table'] or connection.introspection.table_names(cursor=cursor, include_views=True)请注意,生成的模型不会有带有primary_key=True集的字段,您需要手动添加主键。
发布于 2019-07-21 15:57:54
在最近的版本中,可以通过将视图传递给如下命令来包含视图(将检查表和视图):
python manage.py inspectdb --include-views > my_models.pyhttps://stackoverflow.com/questions/30493610
复制相似问题