Не отображаются миниатюры easy-thumbnail в Django

Категория: Разработка
Теги: Веб-разработка
Опубликовано: 5 января 2022 г. 15:04
Просмотров: 39

Есть довольно популярный модуль для Django - easy-thumbnail, позволяющий создавать миниатюры.

Сперва продублирую как его установить, хотя эта информация есть на сайте pip.

pip install easy-thumbnails

Теперь нужно добавить модуль в settings.py:

INSTALLED_APPS = (
    ...
    'easy_thumbnails',
)

Далее желательно запустить команду:

manage.py migrate easy_thumbnails

Без этой команды могут не создаться таблицы в базе данных.

Теперь можно использовать, но сперва нужно задать профили в settings.py:

THUMBNAIL_ALIASES = {
    '': {
        'preview1': {'size': (250, 180), 'crop': 'smart'},
        'preview2': {'size': (500, 0), 'crop': 'smart'},
        'preview3': {'size': (75, 0), 'crop': 'smart'},
    },
}

Теперь достаточно задать в шаблоне следующие теги:

{% load thumbnail %}
<img src="{{ profile.photo|thumbnail_url:'preview1' }}" alt="" />

И всё, должно работать.

Что делать, если не работает?

Пишу в первую очередь для себя, так как второй раз сталкиваюсь с этой проблемой и забываю.

В любой непонятной ситуации с easy-thumbnails просто включай специальную отладку в settings.py:

THUMBNAIL_DEBUG = True

Если у вас основные файлы расположены не сразу в директории сайта, а в подпапке, как любят делать многие, тогда может потребоваться создание ссылки на папку media, которая расположена в той самой подпапке.

В reg.ru сделать это можно при помощи панели isp manager, и там выбратть Менеджер файлов, кнопка создать \ ссылка. И собственно имя и куда - имя должно быть media.

Мне помогло, буду рад если поможет еще кому-то.