def _from_tables(self):
if hasattr(self._view_meta, "from_tables"):
return self._view_meta.from_tables
from django.apps import apps
from_models = self._view_meta.from_models
from_tables = set()
for label in from_models:
if "." in label:
app_label, model_name = label.split(".")
model = apps.get_model(app_label=app_label, model_name=model_name)
if issubclass(model, View):
from_tables = from_tables | model._from_tables()
else:
from_tables.add(model._meta.db_table)
else:
from_tables.add(label)
setattr(self._view_meta, "from_tables", from_tables)
return from_tables
评论列表
文章目录