PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Der Django 1.8-Befehl inspectdb sieht keine PostgreSQL-Ansichten gemäß Dokumentation

Ab Django 1.10 können Sie Ihrer inspectdb einfach eine einzelne Ansicht als Parameter benennen Befehl:

python well/manage.py inspectdb hospitalizations_over_30_days

Die standardmäßige inspectdb gibt nur models.py für Tabellen aus, aber Modelle für Ansichten können individuell generiert werden, indem sie benannt werden.

In Django 2.1 und höher, wenn Sie inspectdb möchten um Modelle für alle Tabellen und zu generieren Ansichten, verwenden Sie den inspectdb --include-views Option, die ich zu Django 2.1 beigetragen habe als Ergebnis dieser Frage!

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

Um Modelle für Tabellen und Ansichten in Django 2.0 und niedriger zu generieren, müssen Sie den Django-Quellcode bearbeiten. Ändern Sie in Django 2.0 Zeile 57 in django/core/management/commands/inspectdb.py zu:

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

Beachten Sie, dass die generierten Modelle keine Felder mit primary_key=True enthalten gesetzt, müssen Sie Primärschlüssel manuell hinzufügen.