summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/forms.py')
-rw-r--r--ishtar/furnitures/forms.py10
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]: