PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

O comando inspectdb do Django 1.8 não vê as visualizações do PostgreSQL conforme a documentação


A partir do Django 1.10, você pode simplesmente nomear uma view individual como um parâmetro para seu inspectdb comando:
python well/manage.py inspectdb hospitalizations_over_30_days

O padrão inspectdb produzirá apenas models.py para tabelas, mas modelos para visualizações podem ser gerados individualmente, nomeando-os.

No Django 2.1 e acima, se você quiser inspectdb para gerar modelos para todas as tabelas e visualizações, use o inspectdb --include-views opção, que eu contribuí para o Django 2.1 como resultado desta pergunta!
python well/manage.py inspectdb --include-views

Para gerar modelos para tabelas e visualizações no Django 2.0 e abaixo, você precisa editar o código-fonte do Django. No Django 2.0, altere a linha 57 em django/core/management/commands/inspectdb.py para:
tables_to_introspect = options['table'] or connection.introspection.table_names(cursor=cursor, include_views=True)

Cuidado que os modelos gerados não terão campos com primary_key=True set, você precisará adicionar chaves primárias manualmente.