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.1
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.1.tar.gz | 26.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wagtail_image_directories-0.1.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 60.8 kB
Release files / wagtail_image_directories-0.1.1.tar.gz
| Download URL | wagtail_image_directories-0.1.1.tar.gz |
|---|---|
| Size | 26.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a67ce9e2655ad1ee5a9341cb7bd1ef674b4fd293defab97c5f08f67a814d1eed
|
|
BLAKE2b-256 checksum How to use checksums |
0f880104e945c196dec939565d56f45d27eea2ea2827bc487dadbf78927e4c14
|
| 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.1-py2.py3-none-any.whl
| Download URL | wagtail_image_directories-0.1.1-py2.py3-none-any.whl |
|---|---|
| Size | 34.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
986fe3a6b1bc0bf4437e1e1bfc39ad1639f5d49fb8c76eb0b61b0d801c3cac0b
|
|
BLAKE2b-256 checksum How to use checksums |
5e298da788d25123e1190d25aa15a9bc26453883aff34b7267ff8282ce52dd11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.5
|