Итак, я пытаюсь выучить django, и я пытаюсь включить изменение размера изображения из загруженного изображения, которое затем назначается объекту через администратора. Я использую django -stdimage lib.
По идее можно вызвать следующий пример:
class Website_Post(models.Model):
title = models.TextField(default='Enter title')
intro = models.TextField(default='Enter post')
image_width = models.IntegerField(validators=[MaxValueValidator(1000), MinValueValidator(0)], default=300)
image_height = models.IntegerField(validators=[MaxValueValidator(1000), MinValueValidator(0)], default=300)
cover = StdImageField(upload_to='images/',
variations={'full': {'width': image_width, 'height': image_height}},null=True)
def __str__(self):
return self.title
А затем в / admin можно определить пропорции изображения с помощью максимальное значение и минимальное значение, которое затем применяется к выбранному изображению.
Я считаю, что варианты StdImageField не легко доступны после создания объекта, поэтому их можно корректировать, по крайней мере, из бэкэнда.
Однако при выполнении этого кода объект не может быть создан, так как выдается следующая ошибка:
TypeError: '>' not supported between instances of 'int' and 'IntegerField'
с ошибкой на этом этапе:
@staticmethod
def is_smaller(img, variation):
return img.size[0] > variation['width'] \ # <--- error in this line
or img.size[1] > variation['height']
, что для меня означает, что значение IntegerField не отображается как целое число при использовании в коде.
Итак, мой вопрос: почему это так, и есть ли способ решить эту проблему? Лично я считаю, что способ, которым я подошел к этому, в корне неверен, но я хотел бы знать, где ограничения.