Конвертировать изображение подушки в Django поле изображения - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть поле изображения с именем thumbnail, а другое - thumbnail_low, представляющее собой версию эскиза 320 * 200. Когда пользователь загружает изображение из поля миниатюрных изображений, я внутренне создаю версию 320 * 200, которая назначается thumbnail_low. это то, как я это делаю (см. код ниже). проблема в том, что изображение правильно назначено на thumbnail_low, за исключением того, что браузер показывает ожидание локального хоста до тех пор, пока моя машина не выйдет из системы, что странно из-за того, что после перезапуска я обнаружил, что сообщение было создано правильно.

class Post(models.Model):

thumbnail = models.ImageField(upload_to=post_directory_path)
thumbnail_low = models.ImageField(upload_to=post_directory_path, null=True, blank=True)


def save(self, force_insert=False, force_update=False, using=None,
         update_fields=None):
    obj = super(Post, self).save(force_insert, force_update, using, update_fields)

    if self.thumbnail:
        img = Image.open(self.thumbnail.path)
        img = img.convert("RGB") 
        img.save(self.thumbnail.path, format="JPEG", optimized=True)

        stream = BytesIO()
        copy = img.copy()
        copy.thumbnail((320, 200), Image.ANTIALIAS)
        copy.save(fp=stream, format="JPEG")
        thumbnail_name = "low" + get_random_string(length=4) + str(self.id) + ".jpeg"
        content = stream.getvalue()
        stream.close()
        self.thumbnail_low.save(thumbnail_name, ContentFile(content))

    return obj
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...