diff options
Diffstat (limited to 'ishtar/furnitures/forms.py')
-rw-r--r-- | ishtar/furnitures/forms.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 5f3c1f0d7..b5d29b7d4 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -301,7 +301,7 @@ class Wizard(NamedUrlSessionFormWizard): value = None dct[key] = value return self.save_model(dct, m2m, whole_associated_models, request, - storage, form_list, return_object=return_object) + storage, form_list, return_object) def get_saved_model(self): """ @@ -316,7 +316,7 @@ class Wizard(NamedUrlSessionFormWizard): return self.get_current_object(request, storage) def save_model(self, dct, m2m, whole_associated_models, request, storage, - form_list, return_object=False): + form_list, return_object): dct = self.get_extra_model(dct, request, storage, form_list) obj = self.get_current_saved_object(request, storage) @@ -338,6 +338,12 @@ class Wizard(NamedUrlSessionFormWizard): setattr(obj, k, dct[k]) for dependant_item in other_objs: c_item = getattr(obj, dependant_item) + # manage ManyToMany if only one associated + if hasattr(c_item, "all"): + c_items = c_item.all() + if len(c_items) != 1: + continue + c_item = c_items[0] if c_item: # to check # for k in other_objs[dependant_item]: |