예제 #1
0
파일: forms.py 프로젝트: vingodu/treeio
    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
예제 #2
0
파일: forms.py 프로젝트: 5n1p/treeio
    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