Django application for image assets management
Project description
django-image-assets
Django application for image assets management.
Use case
- There are several content types on a web site
- Each of them has a set of required or additional image assets
- Every asset of same asset type must satisfy custom constraints on dimensions, format and file size.
- The most important thing: these constraints and required asset type sets are updated often, along with web design evolves and more platforms are added.
Installation
pip install django-image-assets
Working example is in testproject.testapp
.
-
Add
image_assets
application to installed apps in django settings:INSTALLED_APPS.append('image_assets')
-
Add generic relation to your content models:
from django.contrib.contenttypes.fields import GenericRelation from django.db import models from image_assets.models import Asset class Video(models.Model): assets = GenericRelation(Asset, blank=True)
-
Setup inlines for assets
from django.contrib import admin from image_assets.admin import AssetsInline from testproject.testapp import models @admin.register(models.Video) class VideoAdmin(admin.ModelAdmin): inlines = (AssetsInline,)
Usage
- Create new asset type (i.e. "thumbnail")
- Add
Video
toallowed_for
set: now you can add a thumbnail to a video. Or you may skip this asset. - Add
Article
torequired_for
set: now you will able to create or edit an article with valid "thumbnail" asset only. - When an asset is deleted, it's file is owned by
DeletedAsset
object and may be wiped later by manual or automatic cleanup.
Advanced
If you need to alter model fields i.e. for AssetType
, you may subclass
existing model and than change image_assets application settings.
- Subclass
AssetType
modelfrom django.db import models from image_assets.models import AssetType class MyAssetType(AssetType): some_feature_flag = models.BooleanField(default=False)
- Change a reference to an asset type model in settings:
IMAGE_ASSETS_CONFIG = { 'ASSET_TYPE_MODEL': 'my_app.MyAssetType', 'ASSET_MODEL': 'image_assets.Asset', 'DELETED_ASSET_MODEL': 'image_assets.DeletedAsset' }
image_assets.AssetType
will be declared as abstract andMyAssetType
will be returned as result ofimage_assets.models.get_asset_type_model()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
django_image_assets-1.0.0.tar.gz
(11.0 kB
view details)
Built Distribution
File details
Details for the file django_image_assets-1.0.0.tar.gz
.
File metadata
- Download URL: django_image_assets-1.0.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cd908cb4656bc17e4f5a1be2a3a47903700636733afc778d8e9f8facf65cb69 |
|
MD5 | 95d309de5c340112e847488cf6720d5a |
|
BLAKE2b-256 | 3d04a1e8f5f8da0e0903dbf272ec4d2af36cb20385bd8b520da45e9d610762c8 |
File details
Details for the file django_image_assets-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: django_image_assets-1.0.0-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ce6b97354f9becc834469e9d2f35894c07c9feae8e09b711d0205f7699a7b1e |
|
MD5 | 25d012785c33af5228b38b20f767e703 |
|
BLAKE2b-256 | 7d518ec692e7984d49b5a5c7d98cbb43b4a21ccdfb0d3ce2a0122ef075cbafc3 |