diff options
-rw-r--r-- | ishtar_common/forms_common.py | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index b8272a9f3..d7c6da1ec 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -776,18 +776,13 @@ class PersonForm(SimplePersonForm): def save(self, user): dct = self.cleaned_data dct['history_modifier'] = user - if 'attached_to' in dct and dct['attached_to']: - try: - dct['attached_to'] = models.Organization.objects.get( - pk=dct['attached_to']) - except models.Organization.DoesNotExist: - dct.pop('attached_to') - if 'title' in dct: - try: - dct['title'] = models.TitleType.objects.get( - pk=dct['title']) - except (models.TitleType.DoesNotExist, ValueError): - dct.pop('title') + for key in self.associated_models.keys(): + if key in dct and dct[key]: + model = self.associated_models[key] + try: + dct[key] = model.objects.get(pk=dct[key]) + except model.DoesNotExist: + dct.pop(key) person_types = dct.pop('person_types') new_item = models.Person.objects.create(**dct) for pt in person_types: |