library: initialize the content-type mapping lazily
This is required for Django 1.7 as the contenttypes application is not initialized properly when the cell data models are loaded and added to the registry.
This commit is contained in:
parent
2534f36acd
commit
db192efede
|
@ -21,17 +21,23 @@ class Library(object):
|
|||
providing page cells."""
|
||||
|
||||
def __init__(self):
|
||||
self.classes = {}
|
||||
self.classes = []
|
||||
self.classes_by_content_id = None
|
||||
|
||||
def get_cell_classes(self):
|
||||
return self.classes.values()
|
||||
return self.classes
|
||||
|
||||
def get_cell_class(self, content_type_id):
|
||||
return self.classes[int(content_type_id)]
|
||||
if self.classes_by_content_id is None:
|
||||
# initialize the dictionary
|
||||
self.classes_by_content_id = {}
|
||||
for klass in self.classes:
|
||||
content_type = ContentType.objects.get_for_model(klass)
|
||||
self.classes_by_content_id[content_type.id] = klass
|
||||
return self.classes_by_content_id[int(content_type_id)]
|
||||
|
||||
def register_cell_class(self, klass):
|
||||
content_type = ContentType.objects.get_for_model(klass)
|
||||
self.classes[content_type.id] = klass
|
||||
self.classes.append(klass)
|
||||
return klass
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue