Эй, у меня есть следующий код, но он не возвращает ошибки, но размер изображения не изменяется, в начале он был 6,2 МБ, а после выполнения кода он такой же:
Моя модель:
class Photo(models.Model):
user_name= models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True)
photo= models.ImageField()
photo_name= models.TextField(max_length=300)
def __str__(self):
return self.photo_name
def get_absolute_url(self):
return reverse('photo:add_photo',{'pk':self.pk})
my Model.Form
class PhotoForm(ModelForm):
def clean_image(self):
img = self.cleaned_data.get('photo')
if not img:
return img
maxdim = 1024
if any(dim > maxdim for dim in img.image.size):
# Resize too large image up to the max_size
i = Image.open(img.file)
fmt = i.format.lower()
i.thumbnail((maxdim, maxdim))
# We must reset io.BytesIO object, otherwise resized image bytes
# will get appended to the original image
img.file = type(img.file)()
i.save(img.file, fmt)
return img
class Meta:
model = Photo
exclude= ('user_name',)
Мои views.py
class PhotoCreateView(View):
form_class = PhotoForm
template_name = 'photo/photo_form.html'
def get(self,request):
form = self.form_class(None)
return render(request,self.template_name,{'form': form})
def post(self,request):
form = self.form_class(request.POST, request.FILES)
if form.is_valid():
return redirect('travel:main')
return render(request, self.template_name,{})
Кто-нибудь знает, почему он не возвращает ошибку, но изображение имеет тот же размер. Я хочу загрузить свои изображения в мое приложение, которое размещено на pythonanywhere.com, и они имеют ограничение в 512 МБ, что немного.