diff options
Diffstat (limited to 'ishtar_common/wizards.py')
| -rw-r--r-- | ishtar_common/wizards.py | 24 | 
1 files changed, 16 insertions, 8 deletions
| diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index ca18d6697..ece1029e6 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -278,6 +278,7 @@ class Wizard(NamedUrlWizardView):                      # simulate a non empty data for form that might be                      # valid when empty                      prefixed_values['__non_empty_data'] = '' +                self.prepare_serialization(prefixed_values)                  storage.set_step_data(next_step, prefixed_values)              if step == next_step:                  current_step_passed = True @@ -990,6 +991,19 @@ class Wizard(NamedUrlWizardView):          data[key] = value          storage.set_step_data(form_key, data) +    @classmethod +    def prepare_serialization(cls, data): +        """ +        Image and file cannot be passed as object +        """ +        for k in data: +            if isinstance(data[k], ImageFieldFile) \ +                    or isinstance(data[k], FileField): +                try: +                    data[k] = data[k].path +                except ValueError: +                    pass +      def session_get_value(self, form_key, key, multi=False, multi_value=False):          """Get the value of a specific form"""          if not self.session_has_key(form_key, key, multi): @@ -1118,15 +1132,9 @@ class Wizard(NamedUrlWizardView):                      continue                  if hasattr(value, 'pk'):                      value = value.pk -                if isinstance(value, ImageFieldFile) \ +                if value in (True, False) \ +                        or isinstance(value, ImageFieldFile) \                          or isinstance(value, FileField): -                    try: -                        initial[base_field] = value.path -                    except ValueError: -                        pass -                elif value in (True, False) or \ -                   isinstance(value, FileField) or \ -                   isinstance(value, ImageFile):                      initial[base_field] = value                  elif value is not None:                      initial[base_field] = unicode(value) | 
