def save(self, request, contact_type=None): "Process form and create DB objects as required" if self.instance: contact = self.instance else: contact = Contact() contact.contact_type = contact_type contact.name = unicode(self.cleaned_data['name']) if 'parent' in self.cleaned_data: contact.parent = self.cleaned_data['parent'] if 'related_user' in self.cleaned_data: contact.related_user = self.cleaned_data['related_user'] contact.save() if self.instance: contact.contactvalue_set.all().delete() for field in contact.contact_type.fields.all(): for form_name in self.cleaned_data: if re.match(str("^" + field.name + "___\d+$"), form_name): if isinstance(self.fields[form_name], forms.FileField): value = ContactValue( field=field, contact=contact, value=self._handle_uploaded_file(form_name)) if isinstance(self.fields[form_name], forms.ImageField): self._image_resize(value.value) else: if field.field_type == 'picture' and isinstance( self.fields[form_name], forms.ChoiceField): if self.cleaned_data[form_name] != 'delete': value = ContactValue( field=field, contact=contact, value=self.cleaned_data[form_name]) else: value = ContactValue( field=field, contact=contact, value=self.cleaned_data[form_name]) value.save() return contact
def save(self, request, contact_type=None): "Process form and create DB objects as required" if self.instance: contact = self.instance else: contact = Contact() contact.contact_type = contact_type contact.name = unicode(self.cleaned_data['name']) if 'parent' in self.cleaned_data: contact.parent = self.cleaned_data['parent'] if 'related_user' in self.cleaned_data: contact.related_user = self.cleaned_data['related_user'] contact.save() if self.instance: contact.contactvalue_set.all().delete() for field in contact.contact_type.fields.all(): for form_name in self.cleaned_data: if re.match(str("^" + field.name + "___\d+$"), form_name): if isinstance(self.fields[form_name], forms.FileField): value = ContactValue(field=field, contact=contact, value=self._handle_uploaded_file(form_name)) if isinstance(self.fields[form_name], forms.ImageField): self._image_resize(value.value) else: if field.field_type == 'picture' and isinstance(self.fields[form_name], forms.ChoiceField): if self.cleaned_data[form_name] != 'delete': value = ContactValue(field=field, contact=contact, value=self.cleaned_data[form_name]) else: value = ContactValue(field=field, contact=contact, value=self.cleaned_data[form_name]) value.save() return contact