Merge branch 'master' of git://github.com/melinath/philo
[philo.git] / forms.py
index 48e1d7f..a1785fb 100644 (file)
--- a/forms.py
+++ b/forms.py
@@ -21,6 +21,8 @@ def proxy_fields_for_entity_model(entity_model, fields=None, exclude=None, widge
        ignored = []
        opts = entity_model._entity_meta
        for f in opts.proxy_fields:
+               if not f.editable:
+                       continue
                if fields and not f.name in fields:
                        continue
                if exclude and f.name in exclude:
@@ -86,8 +88,12 @@ class EntityForm(EntityFormBase): # Would inherit from ModelForm directly if it
                instance = super(EntityForm, self).save(commit=False)
                
                for f in instance._entity_meta.proxy_fields:
+                       if not f.editable or not f.name in cleaned_data:
+                               continue
                        if self._meta.fields and f.name not in self._meta.fields:
                                continue
+                       if self._meta.exclude and f.name in self._meta.exclude:
+                               continue
                        setattr(instance, f.attname, cleaned_data[f.name])
                
                if commit: