mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Refactored registration of models.
Got rid of AppConfig._stub. As a side effect, app_cache.app_configs now only contains entries for applications that are in INSTALLED_APPS, which is a good thing and will allow dramatic simplifications (which I will perform in the next commit). That required adjusting all methods that iterate on app_configs without checking the "installed" flag, hence the large changes in get_model[s]. Introduced AppCache.all_models to store models: - while the app cache is being populated and a suitable app config object to register models isn't available yet; - for applications that aren't in INSTALLED_APPS since they don't have an app config any longer. Replaced get_model(seed_cache=False) by registered_model() which can be kept simple and safe to call at any time, and removed the seed_cache argument to get_model[s]. There's no replacement for that private API. Allowed non-master app caches to go through populate() as it is now safe to do so. They were introduced in 1.7 so backwards compatibility isn't a concern as long as the migrations framework keeps working.
This commit is contained in:
parent
73c9e65b75
commit
742ed9878e
11 changed files with 64 additions and 53 deletions
|
@ -175,6 +175,7 @@ class ProxyModelTests(TestCase):
|
|||
proxy = True
|
||||
finally:
|
||||
app_cache.app_configs['proxy_models'].models = _old_models
|
||||
app_cache.all_models['proxy_models'] = _old_models
|
||||
app_cache._get_models_cache = {}
|
||||
|
||||
def test_myperson_manager(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue