Пример #1
0
 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    
Пример #2
0
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,
    })