PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Il comando inspectdb di Django 1.8 non vede le viste PostgreSQL come da documentazione

A partire da Django 1.10, puoi semplicemente nominare una singola vista come parametro del tuo inspectdb comando:

python well/manage.py inspectdb hospitalizations_over_30_days

Il valore predefinito inspectdb produrrà solo models.py per le tabelle, ma i modelli per le viste possono essere generati individualmente nominandoli.

In Django 2.1 e versioni successive, se vuoi inspectdb per generare modelli per tutte le tabelle e views, usa inspectdb --include-views opzione, che io contribuito a Django 2.1 come risultato di questa domanda!

python well/manage.py inspectdb --include-views

Per generare modelli sia per le tabelle che per le viste in Django 2.0 e precedenti, devi modificare il codice sorgente di Django. In Django 2.0, cambia riga 57 in django/core/management/commands/inspectdb.py a:

tables_to_introspect = options['table'] or connection.introspection.table_names(cursor=cursor, include_views=True)

Fai attenzione che i modelli generati non avranno campi con primary_key=True impostato, dovrai aggiungere manualmente le chiavi primarie.