Od Django 1.10 możesz po prostu nazwać pojedynczy widok jako parametr swojej inspectdb
polecenie:
python well/manage.py inspectdb hospitalizations_over_30_days
Domyślna inspectdb
wygeneruje tylko pliki models.py dla tabel, ale modele dla widoków można wygenerować indywidualnie, nadając im nazwy.
W Django 2.1 i nowszych, jeśli chcesz inspectdb
do generowania modeli dla wszystkich tabel i widoki, użyj inspectdb --include-views
opcja, którą przyczyniłem do Django 2.1
w wyniku tego pytania!
python well/manage.py inspectdb --include-views
Aby wygenerować modele zarówno dla tabel, jak i widoków w Django 2.0 i niższych, musisz edytować kod źródłowy Django. W Django 2.0 zmień line.py w django/core/management/commands/inspectdb.py
do:
tables_to_introspect = options['table'] or connection.introspection.table_names(cursor=cursor, include_views=True)
Uważaj, że wygenerowane modele nie będą miały pól z primary_key=True
ustawione, konieczne będzie ręczne dodanie kluczy podstawowych.