diff options
Diffstat (limited to 'chimere/forms.py')
| -rw-r--r-- | chimere/forms.py | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/chimere/forms.py b/chimere/forms.py index fb71057..84ae27b 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -280,6 +280,7 @@ class BaseFileForm(forms.ModelForm): if not hasattr(self, '_related_name') or not self._related_name: raise ImproperlyConfigured super(BaseFileForm, self).__init__(*args, **kwargs) + self.fields.pop('marker') def save(self, associated_marker): if not hasattr(self, 'cleaned_data') or not self.cleaned_data: @@ -287,11 +288,8 @@ class BaseFileForm(forms.ModelForm): instance = None if self.cleaned_data.get('id'): try: - # marker must be equal to none because the link has just be - # removed - this condition is necessary to prevent modification - # of already validated items by a forged request instance = self._meta.model.objects.get( - pk=self.cleaned_data['id'], marker=None) + pk=self.cleaned_data['id']) except: pass self.cleaned_data.pop('id') @@ -300,13 +298,13 @@ class BaseFileForm(forms.ModelForm): instance.delete() return self.cleaned_data.pop('DELETE') + self.cleaned_data['marker'] = associated_marker if instance: for k in self.cleaned_data: setattr(instance, k, self.cleaned_data[k]) instance.save() else: instance = self._meta.model.objects.create(**self.cleaned_data) - getattr(associated_marker, self._related_name).add(instance) class MultimediaFileForm(BaseFileForm): """ |
