Loading django/db/models/__init__.py +1 −1 Original line number Diff line number Diff line from functools import wraps from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured from django.db.models.loading import get_apps, get_app, get_models, get_model, register_models from django.db.models.loading import get_apps, get_app_paths, get_app, get_models, get_model, register_models from django.db.models.query import Q from django.db.models.expressions import F from django.db.models.manager import Manager Loading django/db/models/loading.py +21 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,9 @@ class AppCache(object): return self.loaded def get_apps(self): "Returns a list of all installed modules that contain models." """ Returns a list of all installed modules that contain models. """ self._populate() # Ensure the returned list is always in the same order (with new apps Loading @@ -140,6 +142,23 @@ class AppCache(object): apps.sort() return [elt[1] for elt in apps] def get_app_paths(self): """ Returns a list of paths to all installed apps. Useful for discovering files at conventional locations inside apps (static files, templates, etc.) """ self._populate() app_paths = [] for app in self.get_apps(): if hasattr(app, '__path__'): # models/__init__.py package app_paths.extend([upath(path) for path in app.__path__]) else: # models.py module app_paths.append(upath(app.__file__)) return app_paths def get_app(self, app_label, emptyOK=False): """ Returns the module containing the models for the given app_label. If Loading Loading @@ -260,6 +279,7 @@ cache = AppCache() # These methods were always module level, so are kept that way for backwards # compatibility. get_apps = cache.get_apps get_app_paths = cache.get_app_paths get_app = cache.get_app get_app_errors = cache.get_app_errors get_models = cache.get_models Loading Loading
django/db/models/__init__.py +1 −1 Original line number Diff line number Diff line from functools import wraps from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured from django.db.models.loading import get_apps, get_app, get_models, get_model, register_models from django.db.models.loading import get_apps, get_app_paths, get_app, get_models, get_model, register_models from django.db.models.query import Q from django.db.models.expressions import F from django.db.models.manager import Manager Loading
django/db/models/loading.py +21 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,9 @@ class AppCache(object): return self.loaded def get_apps(self): "Returns a list of all installed modules that contain models." """ Returns a list of all installed modules that contain models. """ self._populate() # Ensure the returned list is always in the same order (with new apps Loading @@ -140,6 +142,23 @@ class AppCache(object): apps.sort() return [elt[1] for elt in apps] def get_app_paths(self): """ Returns a list of paths to all installed apps. Useful for discovering files at conventional locations inside apps (static files, templates, etc.) """ self._populate() app_paths = [] for app in self.get_apps(): if hasattr(app, '__path__'): # models/__init__.py package app_paths.extend([upath(path) for path in app.__path__]) else: # models.py module app_paths.append(upath(app.__file__)) return app_paths def get_app(self, app_label, emptyOK=False): """ Returns the module containing the models for the given app_label. If Loading Loading @@ -260,6 +279,7 @@ cache = AppCache() # These methods were always module level, so are kept that way for backwards # compatibility. get_apps = cache.get_apps get_app_paths = cache.get_app_paths get_app = cache.get_app get_app_errors = cache.get_app_errors get_models = cache.get_models Loading