Fixed #1812 -- permit apps without models (without disguising other errors).
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3221 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
54e5b9aa21
commit
d6c95e93a7
|
@ -32,18 +32,25 @@ def get_apps():
|
||||||
_app_errors[app_name] = e
|
_app_errors[app_name] = e
|
||||||
return _app_list
|
return _app_list
|
||||||
|
|
||||||
def get_app(app_label):
|
def get_app(app_label, emptyOK = False):
|
||||||
"Returns the module containing the models for the given app_label."
|
"Returns the module containing the models for the given app_label. If the app has no models in it and 'emptyOK' is True, returns None."
|
||||||
get_apps() # Run get_apps() to populate the _app_list cache. Slightly hackish.
|
get_apps() # Run get_apps() to populate the _app_list cache. Slightly hackish.
|
||||||
for app_name in settings.INSTALLED_APPS:
|
for app_name in settings.INSTALLED_APPS:
|
||||||
if app_label == app_name.split('.')[-1]:
|
if app_label == app_name.split('.')[-1]:
|
||||||
return load_app(app_name)
|
mod = load_app(app_name)
|
||||||
|
if mod is None:
|
||||||
|
if emptyOK:
|
||||||
|
return None
|
||||||
|
else:
|
||||||
|
return mod
|
||||||
raise ImproperlyConfigured, "App with label %s could not be found" % app_label
|
raise ImproperlyConfigured, "App with label %s could not be found" % app_label
|
||||||
|
|
||||||
def load_app(app_name):
|
def load_app(app_name):
|
||||||
"Loads the app with the provided fully qualified name, and returns the model module."
|
"Loads the app with the provided fully qualified name, and returns the model module."
|
||||||
global _app_list
|
global _app_list
|
||||||
mod = __import__(app_name, '', '', ['models'])
|
mod = __import__(app_name, '', '', ['models'])
|
||||||
|
if not hasattr(mod, 'models'):
|
||||||
|
return None
|
||||||
if mod.models not in _app_list:
|
if mod.models not in _app_list:
|
||||||
_app_list.append(mod.models)
|
_app_list.append(mod.models)
|
||||||
return mod.models
|
return mod.models
|
||||||
|
|
Loading…
Reference in New Issue