From a17906c224cbb330176399785ea6e87bc42a9955 Mon Sep 17 00:00:00 2001 From: erjemin Date: Sun, 7 Jun 2026 00:33:12 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20django-filer=20=D0=BD=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B9=D0=BA=D0=B0=20(01)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lpon_site/frontend/apps.py | 67 ++++++++++++++++++++++++++++++++- lpon_site/lpon_site/settings.py | 44 ---------------------- 2 files changed, 65 insertions(+), 46 deletions(-) diff --git a/lpon_site/frontend/apps.py b/lpon_site/frontend/apps.py index f1b73f6..e57db87 100644 --- a/lpon_site/frontend/apps.py +++ b/lpon_site/frontend/apps.py @@ -1,4 +1,5 @@ from django.apps import AppConfig +from lpon_site.settings import DEBUG class FrontendConfig(AppConfig): @@ -20,7 +21,69 @@ class FrontendConfig(AppConfig): # import myapp.signals -# Добавляем кастомный конфиг для filer, чтобы переименовать verbose_name +# Добавляем кастомный конфиг для filer, чтобы переименовать verbose_name и добавить конфиги class CustomFilerConfig(AppConfig): name = 'filer' - verbose_name = 'Медиафайлы' # Напишите здесь желаемое имя вкладки \ No newline at end of file + verbose_name = 'Медиафайлы' # Переименование вкладки в админке + + # ======================================================================== + # Конфигурация Django-Filer (для загрузки файлов через админку) + # ======================================================================== + FILER_ENABLE_PERMISSIONS = DEBUG # В production установить True для ограничения доступа + + # Разрешенные расширения файлов для FilerImageField + FILER_WHITELIST_FOR_PATH_ACCESS = ( + # ПОДУМАТЬ: поддержка '.heic' требует дополнительных пакетов (и разных для прода и дева) + обработчик сигналов + # для автоматической конвертации .heic в .webp при загрузке. Пока отключаем, и оставим на будущее + '.jpg', '.jpeg', '.png', '.gif', '.svg', '.webp', # Изображения + '.doc', '.docx', '.pdf', '.txt', '.xls', '.xlsx', '.csv', # Документы + ) + + # Максимальный размер загружаемого файла (в байтах): 100 MB + FILER_MAX_UPLOAD_SIZE = 100 * 1024 * 1024 + + # MIME-типы разрешенные для загрузки + FILER_MIME_TYPE_WHITELIST = ( + 'image/jpeg', + 'image/png', + 'image/gif', + 'image/svg+xml', + 'image/webp', + 'application/pdf', + 'application/msword', # .doc + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', # .docx + 'text/plain', + 'application/vnd.ms-excel', # .xls + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', # .xlsx + 'text/csv', + ) + + # Tiny Image Specifications для автоматических вариантов изображений + THUMBNAIL_ALIASES = { + '': { + # Для галерей и витрин + # Кратные 16х16 картинки для ускорения GPU-рендера браузеров, retina-дисплеев и "копеечная" экономии на сервере + 'admin_thumbnail': {'size': (64, 64), 'crop': True}, # Для админки + 'small': {'size': (256, 256), 'crop': True}, # Квадрат 256x256 для миниатюр + 'medium': {'size': (512, 512), 'crop': True}, # Квадрат 512x512 для просмотра + 'large': {'size': (1024, 1024), 'crop': 'smart'}, # Большое изображение с умным crop + }, + } + + # Форматы сохранения для thumbnail'ов (миниатюр) + THUMBNAIL_PRESERVE_FORMAT = False # Не сохранять оригинальный формат для thumbnails + THUMBNAIL_FORMAT = 'WEBP' # Конвертировать все thumbnails в WebP + THUMBNAIL_WEBP_QUALITY = 80 # Качество WebP (достаточно 75-85 для thumbnails) + + # Интерпретатор для обработки изображений + THUMBNAIL_ENGINE = 'easy_thumbnails.engines.pil_engine.PilEngine' + + # Качество JPEG при сжатии (0-100, по умолчанию 85) + # THUMBNAIL_QUALITY = 85 + + # Источник кеша для миниатюр + THUMBNAIL_DEBUG = DEBUG # Показывать ошибки генерирования миниатюр в debug режиме + + # Валидаторы файлов (пусто = без ограничений) + FILE_VALIDATORS = {} + diff --git a/lpon_site/lpon_site/settings.py b/lpon_site/lpon_site/settings.py index 7108956..a0e8ee2 100644 --- a/lpon_site/lpon_site/settings.py +++ b/lpon_site/lpon_site/settings.py @@ -161,48 +161,4 @@ STATICFILES_DIRS = [PUBLIC_DIR.joinpath('static')] STATIC_ROOT = PUBLIC_DIR.joinpath('staticfiles') -# ============================================================================ -# Django-Filer Configuration (для загрузки файлов через админку) -# ============================================================================ -# django-filer использует easy_thumbnails для управления вариантами изображений -# Все файлы хранятся в MEDIA_ROOT/filer_public/ и MEDIA_ROOT/filer_private/ - -FILER_ENABLE_PERMISSIONS = DEBUG # В production установить True для ограничения доступа - -# Разрешенные расширения файлов для FilerImageField -FILER_WHITELIST_FOR_PATH_ACCESS = ( - # ПОДУМАТЬ: поддержка '.heic' требует дополнительных пакетов (и разных для прода и дева) + обработчик сигналов - # для автоматической конвертации .heic в .webp при загрузке. Пока отключаем, и оставим на будущее - '.jpg', '.jpeg', '.png', '.gif', '.svg', '.webp', # Изображения - '.doc', '.docx', '.pdf', '.txt', '.xls', '.xlsx', '.csv', # Документы -) - -# Максимальный размер загружаемого файла (в байтах): 100 MB -FILER_MAX_UPLOAD_SIZE = 100 * 1024 * 1024 - -# Tiny Image Specifications для автоматических вариантов изображений -THUMBNAIL_ALIASES = { - '': { - # Для галерей и витрин - # Кратные 16х16 картинки для ускорения GPU-рендера браузеров, retina-дисплеев и "копеечная" экономии на сервере - 'admin_thumbnail': {'size': (64, 64), 'crop': True}, # Для админки - 'small': {'size': (256, 256), 'crop': True}, # Квадрат 256x256 для миниатюр - 'medium': {'size': (512, 512), 'crop': True}, # Квадрат 512x512 для просмотра - 'large': {'size': (1024, 1024), 'crop': 'smart'}, # Большое изображение с умным crop - }, -} - -# Форматы сохранения для thumbnail'ов (миниатюр) -THUMBNAIL_PRESERVE_FORMAT = False # Не сохранять оригинальный формат для thumbnails -THUMBNAIL_FORMAT = 'WEBP' # Конвертировать все thumbnails в WebP -THUMBNAIL_WEBP_QUALITY = 80 # Качество WebP (достаточно 75-85 для thumbnails) - -# Интерпретатор для обработки изображений -THUMBNAIL_ENGINE = 'easy_thumbnails.engines.pil_engine.PilEngine' - -# Качество JPEG при сжатии (0-100, по умолчанию 85) -# THUMBNAIL_QUALITY = 85 - -# Источник кеша для миниатюр -THUMBNAIL_DEBUG = DEBUG # Показывать ошибки генерирования миниатюр в debug режиме