diff options
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r-- | ishtar_common/forms.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index a2e7a4fd1..76b33b638 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -927,11 +927,18 @@ class QAForm(CustomForm, ManageOldType): key = base_key[len("qa_"):] field = item._meta.get_field(key) if getattr(field, 'related_model', None): - if type(value) == list: - value = [field.related_model.objects.get(pk=v) - for v in value] + is_list = isinstance(value, (list, tuple)) + if not is_list: + value = [value] + new_value = [] + for v in value: + if not isinstance(v, field.related_model): + v = field.related_model.objects.get(pk=v) + new_value.append(v) + if is_list: + value = new_value else: - value = field.related_model.objects.get(pk=value) + value = new_value[0] if getattr(field, 'many_to_many', None): if type(value) not in (list, tuple): value = [value] |