diff --git a/ephios/modellogging/json.py b/ephios/modellogging/json.py index cbdca4a51..f9bfcf624 100644 --- a/ephios/modellogging/json.py +++ b/ephios/modellogging/json.py @@ -59,6 +59,8 @@ def __init__(self, *args, **kargs): def custom_hook(self, d): if d.get("__model__") == "__queryset__": Model = ContentType.objects.get_for_id(d["contenttype_id"]).model_class() + if Model is None: + return d["strs"] objects = {obj.pk: obj for obj in Model._base_manager.filter(pk__in=d["pks"])} return [objects.get(pk, s) for pk, s in zip(d["pks"], d["strs"])] if d.get("__model__") == "__instance__": diff --git a/ephios/modellogging/recorders.py b/ephios/modellogging/recorders.py index dde656274..e01766c3f 100644 --- a/ephios/modellogging/recorders.py +++ b/ephios/modellogging/recorders.py @@ -240,7 +240,7 @@ def serialize(self, action_type: InstanceActionType): def deserialize(cls, data, model, action_type: InstanceActionType): try: self = cls(model._meta.get_field(data["field_name"])) - except FieldDoesNotExist: + except (AttributeError, FieldDoesNotExist): self = cls(None) self.label = data["verbose_name"] else: