Primero que nada, no soy un experto en Python ni nada por el estilo -así que espero hacerme entender- pero tengo un sitio sobre Django, y necesito generar una función en uno de los formulario para generar la acción que paso a detallar:
En uno de los formularios que tenemos, creamos fichas con imágenes en tamaño ampliación, las cuales guarda en la base regularmente. Lo que necesito es que cuando se sube la imagen, además de guardarla en un directorio determinado, cree una miniatura paralela y la guarde en una carpeta determinada, para utilizar el thumbnail en los diversos listados y no tener que meterle css y java a las ampliación para ser achicadas, puesto que genera demoras innecesarias.
Alguien tiene algún código ya determinado para generar dicha función aplicando variables de ancho, alto y peso?? Les copio el código del upload de imgs en el objeto fichas.
Código Python:
Ver original
class FichaForm(forms.ModelForm): def _clean_imagen_field(self, attrname, check_max=True, check_min=False): imagen = self.cleaned_data[attrname] if imagen is None: return None if imagen.size > 2097152: raise forms.ValidationError(u"La imagen debe ser menor de 2MB.") img = Image.open(StringIO(imagen.read())) img.load() x, y = img.size if check_min and (x < 100 or y < 100): raise forms.ValidationError((u"La imagen es de %d x %d." u" Tamañan mínimo 100 x 100") % (x, y)) if check_max and (x > 2000 or y > 2000): raise forms.ValidationError((u"La imagen es de %d x %d." u" Tamañan máximo 2000 x 2000") % (x, y)) return imagen def clean_imagen(self): attrname = 'imagen' if not attrname in self.cleaned_data: raise forms.ValidationError(u"La imagen es requerida") return self._clean_imagen_field(attrname, check_min=True) def clean_imagen1(self): attrname = 'imagen1' if not attrname in self.cleaned_data: return None return self._clean_imagen_field(attrname) def clean_imagen2(self): attrname = 'imagen2' if not attrname in self.cleaned_data: return None return self._clean_imagen_field(attrname) def clean_imagen3(self): attrname = 'imagen3' if not attrname in self.cleaned_data: return None return self._clean_imagen_field(attrname) class Meta: model = Ficha
Saludos.