mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Improve the logic for gathering models from all apps
This commit is contained in:
@ -6,7 +6,6 @@ from django import get_version
|
|||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
from django.db.models import Model
|
|
||||||
|
|
||||||
APPS = ['circuits', 'dcim', 'extras', 'ipam', 'secrets', 'tenancy', 'users', 'virtualization']
|
APPS = ['circuits', 'dcim', 'extras', 'ipam', 'secrets', 'tenancy', 'users', 'virtualization']
|
||||||
|
|
||||||
@ -38,16 +37,10 @@ class Command(BaseCommand):
|
|||||||
for app in APPS:
|
for app in APPS:
|
||||||
self.django_models[app] = []
|
self.django_models[app] = []
|
||||||
|
|
||||||
# Models
|
# Load models from each app
|
||||||
app_models = sys.modules['{}.models'.format(app)]
|
for model in apps.get_app_config(app).get_models():
|
||||||
for name in dir(app_models):
|
namespace[model.__name__] = model
|
||||||
model = getattr(app_models, name)
|
self.django_models[app].append(model.__name__)
|
||||||
try:
|
|
||||||
if issubclass(model, Model) and model._meta.app_label == app:
|
|
||||||
namespace[name] = model
|
|
||||||
self.django_models[app].append(name)
|
|
||||||
except TypeError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Constants
|
# Constants
|
||||||
try:
|
try:
|
||||||
|
Reference in New Issue
Block a user