def clean_imageUrl_url(self): url = self.cleaned_data['imageUrl_url'].lower() if(url): domain, path = library.split_url(url) #if not library.valid_url_extension(url) or not library.valid_url_mimetype(url): # raise forms.ValidationError("Not a valid Image. The URL must have an image extensions (.jpg/.jpeg/.png)") return url
def addDeal(request): # if this is a POST request we need to process the form data if request.method == 'POST': # create a form instance and populate it with data from the request: form = DealForm(request.POST, request.FILES) # check whether it's valid: if form.is_valid(): thumbnail_image = request.FILES.get('thumbnail_image', None) print("now checking: ") print(thumbnail_image) print(request) if (not thumbnail_image is None ): #if he is attaching an image, we save the form normally print("about to save") print(thumbnail_image) myDeal = form.save() #myDeal.thumbnail_image.save(myDeal.slug + ".jpeg", django_file) else: #else he needs some processing print("metode tradicional") def invalidateAddDeal(msg): form.errors['imageUrl_url'] = [ msg, ] return render(request, 'deals/deal_add.html', { 'form': form, }) url = form.data['imageUrl_url'] domain, path = library.split_url(url) if not library.image_exists(domain, path): return invalidateAddDeal( "No he conseguido encontrar la imagen... Prueba de subirla" ) fobject = library.retrieve_image(url) if not library.valid_image_mimetype(fobject): return invalidateAddDeal( "Consegui descargar un fichero, pero no parece que sea una imagen..." ) pil_image = Image.open(fobject) if not library.valid_image_size(pil_image)[0]: return invalidateAddDeal("Image is too large (> 4mb)") django_file = library.pil_to_django(pil_image) # process the data in form.cleaned_data as required # Create a form instance from POST data. myDeal = form.save() myDeal.thumbnail_image.save(myDeal.slug + ".jpeg", django_file) # redirect to a new URL: return HttpResponseRedirect('/deals/') # if a GET (or any other method) we'll create a blank form else: form = DealForm() return render(request, 'deals/deal_add.html', { 'form': form, })