From 3ceb1a37d8927cb6e1e1768eb8452c9b55d950d4 Mon Sep 17 00:00:00 2001 From: Greg Turner Date: Thu, 10 Jan 2013 22:14:24 +1100 Subject: [PATCH] Last patch re #323 was a sledgehammer to crack a walnut. This is a better solution. --- feincms/__init__.py | 4 ++-- feincms/models.py | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/feincms/__init__.py b/feincms/__init__.py index 7fb46bea6..1a9d5d1a8 100644 --- a/feincms/__init__.py +++ b/feincms/__init__.py @@ -23,7 +23,7 @@ def __getattr__(self, attr): COMPLETELY_LOADED = False -def ensure_completely_loaded(force=False): +def ensure_completely_loaded(): """ This method ensures all models are completely loaded @@ -36,7 +36,7 @@ def ensure_completely_loaded(force=False): """ global COMPLETELY_LOADED - if COMPLETELY_LOADED and not force: + if COMPLETELY_LOADED: return True # Ensure meta information concerning related fields is up-to-date. diff --git a/feincms/models.py b/feincms/models.py index 47cacced6..7ed18a53e 100644 --- a/feincms/models.py +++ b/feincms/models.py @@ -729,7 +729,10 @@ class Meta(feincms_content_base.Meta): for key, includes in model.feincms_item_editor_includes.items(): cls.feincms_item_editor_includes.setdefault(key, set()).update(includes) - ensure_completely_loaded(force=True) + # since this content type is potentially being added after cls is + # loaded by Django, we will reload the cls's related objects cache. + # See issue #323. + cls._meta._fill_related_objects_cache() return new_type @property