mod: django-filer настройка (12) поддержка heif/heic (работает с логами)

This commit is contained in:
2026-06-09 18:54:54 +03:00
parent 6d6bb873e9
commit a5425b212d
3 changed files with 265 additions and 32 deletions

View File

@@ -191,11 +191,27 @@ FILER_STORAGES = {
}
# Настройки easy_thumbnails для генерации миниатюр
# Преимущественно используется для django-filer
THUMBNAIL_PRESERVE_FORMAT = False
THUMBNAIL_FORMAT = 'WEBP'
THUMBNAIL_DEBUG = DEBUG
THUMBNAIL_WEBP_QUALITY = 80
THUMBNAIL_QUALITY= 80
THUMBNAIL_WEBP_QUALITY = THUMBNAIL_QUALITY
THUMBNAIL_ENGINE = 'easy_thumbnails.engines.pil_engine.PilEngine'
# Список расширений, которые нужно сохранять при генерации миниатюр
# Это важно для WebP файлов - они не должны быть сконвертированы в другой формат
THUMBNAIL_PRESERVE_EXTENSIONS = ['png', 'gif', 'webp']
# Нейминг миниатюр - стандартный нейминг easy_thumbnails
# Формат: {source_name}{dimensions}{options}{quality}{extra}
# Например: image.webp__40x40_q85_crop_subsampling-2.jpg
THUMBNAIL_NAMER = 'easy_thumbnails.namers.default'
# Показывать ошибки при генерации миниатюр (полезно для отладки)
THUMBNAIL_VERBOSE = DEBUG
THUMBNAIL_ALIASES = {
'': {
# Примечание: filer автоматически генерирует свои миниатюры для админки (40x40, 210x210 и 420x420)
@@ -212,7 +228,7 @@ FILER_MAX_IMAGE_PIXELS = 4096 * 4096
FILER_ENABLE_PERMISSIONS = DEBUG
FILER_WHITELIST_FOR_PATH_ACCESS = (
'.jpg', '.jpeg', '.png', '.gif', '.svg', '.webp', ".heic", ".heif",
'.doc', '.docx', '.pdf', '.txt', '.xls', '.xlsx', '.csv',
'.doc', '.docx', '.pdf', '.xls', '.xlsx', '.txt', '.csv',
)
MIME_TYPE_WHITELIST = (
'image/jpeg', # .jpg / .jpeg
@@ -220,7 +236,7 @@ MIME_TYPE_WHITELIST = (
'image/gif',
'image/svg+xml',
'image/webp',
'image/heic', 'image/heif', # форматы Apple HEIC/HEIF (без анимации
'image/heic', 'image/heif', # форматы Apple HEIC/HEIF (без анимации
'application/pdf',
'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', # .doc / .docx
'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', # .xls / .xlsx
@@ -229,11 +245,66 @@ MIME_TYPE_WHITELIST = (
)
FILE_VALIDATORS = {}
# Настройки для "умной" обрезки изобращений
# КРИТИЧЕСКИ ВАЖНЫЕ НАСТРОЙКИ ДЛЯ FILER - расширения и mime-типы для WebP и HEIC/HEIF
# Эти настройки переопределяют defaults в filer/settings.py
# IMAGE_EXTENSIONS используется filer для определения какие файлы считать изображениями
FILER_IMAGE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif', '.svg', '.webp', '.heic', '.heif']
# IMAGE_MIME_TYPES используется для проверки mime_type файла
# Это ЧАСТИ mime-типов которые ищутся внутри полного mime_type (например 'webp' в 'image/webp')
FILER_IMAGE_MIME_TYPES = ['gif', 'jpeg', 'png', 'x-png', 'svg+xml', 'webp', 'heic', 'heif']
# Настройки для "умной" обрезки изображений
THUMBNAIL_PROCESSORS = (
'easy_thumbnails.processors.colorspace',
'easy_thumbnails.processors.autocrop',
#'easy_thumbnails.processors.scale_and_crop',
'filer.thumbnail_processors.scale_and_crop_with_subject_location',
'easy_thumbnails.processors.filters',
)
)
# Конфигурация логирования для отладки загрузок и обработки файлов
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '[{levelname}] {asctime} {name}:{funcName}() line {lineno} - {message}',
'style': '{',
'datefmt': '%Y-%m-%d %H:%M:%S',
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
'file': {
'class': 'logging.FileHandler',
'filename': os.path.join(BASE_DIR.parent, 'logs', 'uploads.log'),
'formatter': 'verbose',
},
},
'loggers': {
'frontend.apps': {
'level': 'DEBUG',
'handlers': ['console', 'file'],
'propagate': False,
},
'frontend.models': {
'level': 'DEBUG',
'handlers': ['console', 'file'],
'propagate': False,
},
'easy_thumbnails': {
'level': 'DEBUG',
'handlers': ['console', 'file'],
'propagate': False,
},
'filer': {
'level': 'DEBUG',
'handlers': ['console', 'file'],
'propagate': False,
},
},
}