From e09c5f415adbc9d1577718e74867f9b5f3cf463a Mon Sep 17 00:00:00 2001 From: Oskar Hahn Date: Mon, 17 Dec 2018 13:34:17 +0100 Subject: [PATCH] fix keyerror introduced by #3985 --- openslides/users/apps.py | 1 + openslides/utils/models.py | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/openslides/users/apps.py b/openslides/users/apps.py index eff921cf9..c32b82f83 100644 --- a/openslides/users/apps.py +++ b/openslides/users/apps.py @@ -13,6 +13,7 @@ class UsersAppConfig(AppConfig): def ready(self): # Import all required stuff. + from . import serializers # noqa from ..core.signals import post_permission_creation, permission_change from ..utils.rest_api import router from .projector import get_projector_elements diff --git a/openslides/utils/models.py b/openslides/utils/models.py index 4b863e497..6b185cb07 100644 --- a/openslides/utils/models.py +++ b/openslides/utils/models.py @@ -135,5 +135,13 @@ class RESTModelMixin: """ Returns the full_data of the instance. """ - serializer_class = model_serializer_classes[type(self)] + try: + serializer_class = model_serializer_classes[type(self)] + except KeyError: + # Because of the order of imports, it can happen, that the serializer + # for a model is not imported yet. Try to guess the name of the + # module and import it. + module_name = type(self).__module__.rsplit(".", 1)[0] + ".serializers" + __import__(module_name) + serializer_class = model_serializer_classes[type(self)] return serializer_class(self).data