summaryrefslogtreecommitdiff
path: root/chimere/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/forms.py')
-rw-r--r--chimere/forms.py8
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):
"""