misc: don't crash when cell cache refers to unknown cell types (#32046)
This commit is contained in:
parent
8d9a03f57c
commit
2bd06c348b
|
@ -29,7 +29,7 @@ class Library(object):
|
|||
return self.classes_by_content_str.values()
|
||||
|
||||
def get_cell_class(self, content_type_str):
|
||||
return self.classes_by_content_str[content_type_str]
|
||||
return self.classes_by_content_str.get(content_type_str)
|
||||
|
||||
def register_cell_class(self, klass):
|
||||
self.classes_by_content_str[klass.get_cell_type_str()] = klass
|
||||
|
|
|
@ -586,6 +586,8 @@ class CellBase(six.with_metaclass(CellMeta, models.Model)):
|
|||
else:
|
||||
cell_classes = [get_cell_class(x) for x in cell_types]
|
||||
for klass in cell_classes:
|
||||
if klass is None:
|
||||
continue
|
||||
if cell_filter and not cell_filter(klass):
|
||||
continue
|
||||
cells.extend(klass.objects.filter(**kwargs))
|
||||
|
@ -600,9 +602,8 @@ class CellBase(six.with_metaclass(CellMeta, models.Model)):
|
|||
def get_cell(cls, reference, **kwargs):
|
||||
"""Returns the cell matching reference, and eventual **kwargs"""
|
||||
content_id, cell_id = reference.split('-')
|
||||
try:
|
||||
klass = get_cell_class(content_id)
|
||||
except KeyError:
|
||||
if klass is None:
|
||||
raise ObjectDoesNotExist()
|
||||
return klass.objects.get(id=cell_id, **kwargs)
|
||||
|
||||
|
|
Loading…
Reference in New Issue