Django图像资产管理应用程序
django-image-assets的Python项目详细描述
django图像资产
用于图像资产管理的Django应用程序。在
用例
- 网站上有几种内容类型
- 它们中的每一个都有一组必需的或附加的图像资源
- 同一资产类型的每个资产必须满足维度上的自定义约束, 格式和文件大小。在
- 最重要的是:这些约束和所需的资产类型集是 经常更新,随着网页设计的发展和更多的平台被添加。在
安装
pip install django-image-assets
工作示例在testproject.testapp
。在
- 在
在django设置中将
^{pr2}$ 在image_assets
应用程序添加到已安装的应用程序: - 在
向内容模型添加通用关系:
fromdjango.contrib.contenttypes.fieldsimportGenericRelationfromdjango.dbimportmodelsfromimage_assets.modelsimportAssetclassVideo(models.Model):assets=GenericRelation(Asset,blank=True)
在 - 在
资源的设置内联线
fromdjango.contribimportadminfromimage_assets.adminimportAssetsInlinefromtestproject.testappimportmodels@admin.register(models.Video)classVideoAdmin(admin.ModelAdmin):inlines=(AssetsInline,)
在
使用
- 创建新的资产类型(即“缩略图”)
- 将
Video
添加到allowed_for
集:现在可以向视频添加缩略图。或者 您可以跳过此资产。在 - 将
Article
添加到required_for
集合:现在您可以创建或编辑了 仅包含有效“缩略图”资产的文章。在 - 当一个资产被删除时,它的文件属于
DeletedAsset
对象,并且可能 以后用手动或自动清理。在
高级
如果您需要改变模型字段,例如AssetType
,您可以子类化
现有模型,然后更改图像资产应用程序设置。在
- 子类
AssetType
模型fromdjango.dbimportmodelsfromimage_assets.modelsimportAssetTypeclassMyAssetType(AssetType):some_feature_flag=models.BooleanField(default=False)
在 - 在“设置”中更改对资产类型模型的引用:
IMAGE_ASSETS_CONFIG={'ASSET_TYPE_MODEL':'my_app.MyAssetType','ASSET_MODEL':'image_assets.Asset','DELETED_ASSET_MODEL':'image_assets.DeletedAsset'}
在 image_assets.AssetType
将被声明为抽象的MyAssetType
将作为image_assets.models.get_asset_type_model()
的结果返回
- 项目
标签: