wagtail-image-directories
Organize your Wagtail CMS media files into structured year/slug directories on disk with an interactive visual Image Navigator and bulk-action file manager in the Wagtail admin.
Features
- Structured Storage: Images are physically organized on disk as
media/images/{year}/{slug}/filename.ext. - Image Navigator: A dashboard grouped by root directories (years) with real-time statistics (file count, total size, last updated).
- In-place Drag & Drop Upload: Upload images directly into the targeted folder without page reloads.
- Bulk Operations: Select multiple images to move or delete with automatic disk cleanup.
- Directory Management: Create, rename, and merge directories right from the admin UI.
Installation
pip install wagtail-image-directories
Add to INSTALLED_APPS in your settings.py:
INSTALLED_APPS = [
...
"wagtail_image_directories",
...
]
Configure your Custom Image Model
In your models file:
from wagtail_image_directories.models import AbstractDirectoryImage
from wagtail.images.models import AbstractRendition
class CustomImage(AbstractDirectoryImage):
pass
class CustomRendition(AbstractRendition):
image = models.ForeignKey(CustomImage, on_delete=models.CASCADE, related_name="renditions")
class Meta:
unique_together = (("image", "filter_spec", "focal_point_key"),)
Point Wagtail to your custom model in settings.py:
WAGTAILIMAGES_IMAGE_MODEL = 'your_app.CustomImage'
Run migrations:
python manage.py makemigrations
python manage.py migrate
Case Study & Background
Read the full story behind the migration and architecture on our blog: Vs-Svet.ru / ZenWay.ru.
Recommended Complementary Package
To enable seamless native image uploads directly inside your rich text editor with full directory awareness, check out our companion plugin: 👉 wagtail-prose-editor-images
Release files for wagtail-image-directories 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wagtail_image_directories-0.1.0.tar.gz | 26.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wagtail_image_directories-0.1.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 59.0 kB
Release files / wagtail_image_directories-0.1.0.tar.gz
| Download URL | wagtail_image_directories-0.1.0.tar.gz |
|---|---|
| Size | 26.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8fc65b38d4f0563e71db44e4a884ec465dbb799a67068cbe8b0f5f4c1464bb23
|
|
BLAKE2b-256 checksum How to use checksums |
71499aefb381f3f205ad9b250d1eab38392f4532cf861720dc15e78d114123f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.5
|
Release files / wagtail_image_directories-0.1.0-py2.py3-none-any.whl
| Download URL | wagtail_image_directories-0.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 33.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
e4ff8a925e448023da9ea879a7513c3f72a76fe0db65d41a5a69756581247c53
|
|
BLAKE2b-256 checksum How to use checksums |
2caa1c4fedc29210d1d89f8feb60bf5f451ab34dcc1cbf3e31161aba970e294e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.5
|