Django アプリですべてのテーブル名を取得するにはどうすればよいですか?
次のコードを使用していますが、ManyToManyFieldによって作成されたテーブルが取得されません。
from django.db.models import get_app, get_models
app = get_app(app_name)
for model in get_models(app):
print model._meta.db_table
ベストアンサー1
これにより、OP が要求しているすべてのテーブル名が表示されます。
from django.apps import apps
tables = [m._meta.db_table for c in apps.get_app_configs() for m in c.get_models()]
これにより、すべてのモデル名が表示されます。
from django.db import connection
tables = connection.introspection.table_names()
seen_models = connection.introspection.installed_models(tables)
これにより、アプリごとにすべてのモデル名が表示されます。
from django.apps import apps
from django.contrib import admin
from django.contrib.admin.sites import AlreadyRegistered
app_models = apps.get_app_config('my_app').get_models()
追加資料
さらに別の人は、この回答を読むことを勧めています: