From 1f16014274a2ad16fcd635fc9b506ef429a33677 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 4 Sep 2013 20:05:24 +0200 Subject: Improve Image field management (refs #1365) * add a custom widget to allow display via prettyPhoto on forms * disable resizing when the image is deleted * fix "has image" search request to manage empty and null field for images * fix deletion of files by the wizard * fix initialization of instancied form for files and images --- ishtar_common/wizards.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'ishtar_common/wizards.py') diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index e1f031818..b96e33669 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -22,6 +22,8 @@ import datetime from django.conf import settings from django.contrib.formtools.wizard.views import NamedUrlWizardView from django.core.exceptions import ObjectDoesNotExist +from django.core.files.images import ImageFile +from django.db.models.fields.files import FileField from django.shortcuts import render_to_response from django.template import RequestContext from django.utils.datastructures import MultiValueDict @@ -334,6 +336,11 @@ class Wizard(NamedUrlWizardView): for k in dct: if k.startswith('pk'): continue + # False set to None for images and files + if isinstance(obj.__class__._meta.get_field(k), FileField) or\ + isinstance(obj.__class__._meta.get_field(k), ImageFile): + if not dct[k]: + dct[k] = None setattr(obj, k, dct[k]) try: obj.full_clean() @@ -646,7 +653,9 @@ class Wizard(NamedUrlWizardView): continue if hasattr(value, 'pk'): value = value.pk - if value in (True, False): + if value in (True, False) or \ + isinstance(value, FileField) or \ + isinstance(value, ImageFile): initial[base_field] = value elif value != None: initial[base_field] = unicode(value) -- cgit v1.2.3