diff options
-rw-r--r-- | ishtar_common/wizards.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 375004e67..f5f9d63dc 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -45,7 +45,8 @@ from django.utils.safestring import mark_safe from ishtar_common import models from ishtar_common.forms import CustomForm, reverse_lazy -from ishtar_common.utils import get_all_field_names, MultiValueDict +from ishtar_common.utils import get_all_field_names, MultiValueDict, \ + put_session_message logger = logging.getLogger(__name__) @@ -601,7 +602,7 @@ class Wizard(IshtarWizard): other_objs[dependant_item] = {} other_objs[dependant_item][key] = dct.pop(k) if obj: - for k in dct: + for k in list(dct.keys()): if k.startswith('pk'): continue if k not in get_all_field_names(obj.__class__): @@ -628,7 +629,11 @@ class Wizard(IshtarWizard): obj.full_clean() except ValidationError as e: logger.warning(str(e)) - return self.render(form_list[-1]) + put_session_message( + self.request.session.session_key, + str(e), 'error' + ) + return self.render(list(form_list)[-1]) for dependant_item in other_objs: c_item = getattr(obj, dependant_item) if callable(c_item): @@ -705,7 +710,11 @@ class Wizard(IshtarWizard): obj.full_clean() except ValidationError as e: logger.warning(str(e)) - return self.render(form_list[-1]) + put_session_message( + self.request.session.session_key, + str(e), 'error' + ) + return self.render(list(form_list)[-1]) if hasattr(obj, 'data'): obj.data = data obj.save(**saved_args) |