diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-07-01 20:56:07 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-07-01 20:56:07 +0200 |
commit | 48827b3dbcd37a0e0655c4d3e17d77d6112d9f40 (patch) | |
tree | bf633d5f57baab695160ed4bb949c8ab77c27ce8 /ishtar/ishtar_base/forms.py | |
parent | 08b2fd834f068fa30bb6a32d595e9ae564a389bc (diff) | |
download | Ishtar-48827b3dbcd37a0e0655c4d3e17d77d6112d9f40.tar.bz2 Ishtar-48827b3dbcd37a0e0655c4d3e17d77d6112d9f40.zip |
Work on warehouse packaging (refs #500)
Diffstat (limited to 'ishtar/ishtar_base/forms.py')
-rw-r--r-- | ishtar/ishtar_base/forms.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ishtar/ishtar_base/forms.py b/ishtar/ishtar_base/forms.py index 29d9ab4d6..9faba2ac9 100644 --- a/ishtar/ishtar_base/forms.py +++ b/ishtar/ishtar_base/forms.py @@ -269,7 +269,18 @@ class Wizard(NamedUrlSessionFormWizard): value = form.cleaned_data[key] if key in associated_models: if value: - value = associated_models[key].objects.get(pk=value) + model = associated_models[key] + if isinstance(value, unicode) \ + or isinstance(value, str) and "," in value: + value = value.split(",") + if isinstance(value, list) \ + or isinstance(value, tuple): + value = [model.objects.get(pk=val) + for val in value if val] + if len(value) == 1: + value = value[0] + else: + value = model.objects.get(pk=value) else: value = None dct[key] = value @@ -335,7 +346,7 @@ class Wizard(NamedUrlSessionFormWizard): m = getattr(self.model, dependant_item) model = m.field.rel.to c_dct = other_objs[dependant_item].copy() - if hasattr(model, 'history'): + if issubclass(model, models.BaseHistorizedItem): c_dct['history_modifier'] = request.user c_item = model(**c_dct) c_item.save() |