Changeset 2278
- Timestamp:
- 02/04/06 18:03:12 (3 years ago)
- Files:
-
- django/branches/magic-removal/django/contrib/admin/views/doc.py (modified) (1 diff)
- django/branches/magic-removal/django/core/management.py (modified) (1 diff)
- django/branches/magic-removal/django/db/models/base.py (modified) (2 diffs)
- django/branches/magic-removal/django/db/models/loading.py (modified) (3 diffs)
- django/branches/magic-removal/django/db/models/options.py (modified) (1 diff)
- django/branches/magic-removal/tests/runtests.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/magic-removal/django/contrib/admin/views/doc.py
r2211 r2278 152 152 raise Http404, "App %r not found" % app_label 153 153 model = None 154 for m in app_mod._MODELS:154 for m in models.get_models(app_mod): 155 155 if m._meta.object_name.lower() == model_name: 156 156 model = m django/branches/magic-removal/django/core/management.py
r2273 r2278 439 439 output.append('{%% if perms.%s %%}' % app_label) 440 440 output.append('<div class="module"><h2>%s</h2><table>' % app_label.title()) 441 for klass in mod._MODELS:441 for klass in app_models: 442 442 if klass._meta.admin: 443 443 output.append(MODULE_TEMPLATE % { django/branches/magic-removal/django/db/models/base.py
r2277 r2278 8 8 from django.db import connection, backend 9 9 from django.db.models import signals 10 from django.db.models.loading import register_models 10 11 from django.dispatch import dispatcher 11 12 from django.core.exceptions import ObjectDoesNotExist … … 47 48 new_class._prepare() 48 49 49 # Populate the _MODELS member on the module the class is in. 50 model_module.__dict__.setdefault('_MODELS', []).append(new_class) 50 register_models(new_class._meta.app_label, new_class) 51 51 return new_class 52 52 django/branches/magic-removal/django/db/models/loading.py
r2277 r2278 7 7 8 8 _app_list = None # Cache of installed apps. 9 _app_models = {} # Dictionary of models against app module name 9 10 10 11 def get_apps(): … … 34 35 """ 35 36 if app_mod: 36 return getattr(app_mod, '_MODELS', ())37 return _app_models.get(app_mod.__name__.split('.')[-2], ()) 37 38 else: 38 39 model_list = [] 39 40 for app_mod in get_apps(): 40 model_list.extend(get attr(app_mod, '_MODELS', ()))41 model_list.extend(get_models(app_mod)) 41 42 return model_list 42 43 … … 52 53 return model 53 54 54 def register_models(app_ mod, *models):55 def register_models(app_label, *models): 55 56 """ 56 Use this from an app's models.py module to register imported Model classes 57 as belonging to the app. e.g.: 58 59 register_models(sys.modules[__name__], Article, Reporter) 57 Register a set of models as belonging to an app. 60 58 """ 61 if not hasattr(app_mod, '_MODELS'): 62 app_mod._MODELS = [] 63 app_mod._MODELS.extend(models) 59 _app_models.setdefault(app_label, []).extend(models) django/branches/magic-removal/django/db/models/options.py
r2277 r2278 168 168 objects = [] 169 169 # TODO 170 #for klass in get_ app(self.app_label)._MODELS:170 #for klass in get_models(get_app(self.app_label)): 171 171 # opts = klass._meta 172 172 # if opts.order_with_respect_to and opts.order_with_respect_to.rel \ django/branches/magic-removal/tests/runtests.py
r2253 r2278 2 2 3 3 import os, re, sys, time, traceback 4 import django.db.models 4 5 5 6 # doctest is included in the same package as this module, because this testing … … 143 144 # Run the API tests. 144 145 p = doctest.DocTestParser() 145 test_namespace = dict([(m._meta.object_name, m) for m in mod._MODELS]) 146 test_namespace = dict([(m._meta.object_name, m) \ 147 for m in django.db.models.get_models(mod)]) 146 148 dtest = p.get_doctest(mod.API_TESTS, test_namespace, model_name, None, None) 147 149 # Manually set verbose=False, because "-v" command-line parameter
