My admin interface has a form with ImageField. Everything works fine, except when some other field causes a validation error. In these cases, the form is returned to the user for correction, but the already downloaded image file is cleared of the form.
Any idea on how to reload an already submitted image into a form in some way to allow the image to be saved?
Thanks!
Request interesting snippets of code:
class DealForm(forms.ModelForm): image = forms.ImageField(required=False,widget=AdminImageWidget) def clean(): data = self.cleaned_data date_start = data.get('date_start') date_end = data.get('date_end') (... several other validations ...) return data
.
class AdminImageWidget(forms.FileInput): def __init__(self, attrs={}): super(AdminImageWidget, self).__init__(attrs) def render(self, name, value, attrs=None): output = [] if value and hasattr(value, "url"): output.append(('<a target="_blank" href="%s">' '<img src="%s" /></a> ' % (value.url, value.url_200x150))) output.append(super(AdminImageWidget, self).render(name, value, attrs)) return mark_safe(u''.join(output))
source share