一个django应用程序,用于管理列表视图和表单中的干缩略图。

django-admin-thumbnails的Python项目详细描述


django管理缩略图

一个django应用程序,可以帮助您以一种干巴巴的方式将模型的图像字段的缩略图添加到管理列表视图和表单中。

基本原理

当使用包含ImageFields、FileFields或使用easy_thumbnails中的ThumbnailerImageField的模型时,通常需要在管理窗体、字段集或列表视图中包含字段的缩略图预览。各种方法来实现这一点,但似乎都涉及到一定程度的重复。这些年来,我尝试了一些尝试来干掉这些代码,这个库代表了我最近的解决方案。所以,请享受!

安装

$ pip install django-admin-thumbnails

用法

应用程序会将字段添加到ModelAdmin*Inline类中;每个要显示的缩略图都有一个字段。它们被附加到类的readonly_fields元组中(除非您另有指定),因此它们将显示在管理窗体的底部,或者您可以按名称将它们包含在fieldsetslist_display定义中。

django-admin-thumbnails将处理ImageFieldFileField(例如,您可以使用svg)和(如果安装了easy_thumbnailsThumbnailerImageField。在后一种情况下,将使用缩略图别名,您可以在“设置”中指定该别名。

要创建管理缩略图字段,请修饰您的ModelAdmin*Inline类,并可以选择指定如何处理新创建的字段。

假设模型如下:

classPerson(models.Model):name=models.CharField('Name',max_length=100)image=models.ImageField('Image')# ...

在最简单的用例中,要将缩略图字段添加到管理表单的底部,只需修饰ModelAdmin*Inline类(decorators的顺序很重要),提供将从中获取缩略图的字段的名称:

importadmin_thumbnails@admin.register(models.Person)@admin_thumbnails.thumbnail('image')classPersonAdmin(admin.ModelAdmin):pass

这将向您的ModelAdmin*Inline定义中添加一个名为image_thumbnailFOO_thumbnail,其中FOO是原始字段的名称)。若要重写给定给新字段的标题,请将第二个字符串参数传递给装饰符:

@admin_thumbnails.thumbnail('image','Thumbnail')

要将缩略图添加到模型列表视图中显示的列,请将新字段名添加到list_display

@admin.register(models.Person)@admin_thumbnails.thumbnail('image')classPersonAdmin(admin.ModelAdmin):list_display=('name','image_thumbnail')

或者将其包含在您的fieldsets中类似地:

@admin.register(models.Person)@admin_thumbnails.thumbnail('image')classPersonAdmin(admin.ModelAdmin):fieldsets=((None,{'fields':('name','image_thumbnail'),}),)

默认情况下,新字段将附加到readonly_fields元组–如果这是不需要的(例如,如果希望在列表视图中包含缩略图,但在默认表单字段中不包含,请将append=False传递给装饰器:

@admin.register(models.Person)@admin_thumbnails.thumbnail('image',append=False)classPersonAdmin(admin.ModelAdmin):list_display=('name','image_thumbnail')

如果您使用的是fieldsets,这是不必要的,因为这样做可以控制缩略图字段的包含(或省略)和位置。

如果您的字段包含设计为在深色背景上显示的图像,则可以向装饰器提供background=True,以便在显示时(通过css)将图像添加到缩略图中:

@admin_thumbnails.thumbnail('image',background=True)

如果您正在使用easy_thumbnails并希望覆盖用于按字段生成缩略图的别名(而不是使用ADMIN_THUMBNAIL_THUMBNAIL_ALIAS设置;请参见下面的内容),则可以对装饰器使用alias参数:

@admin_thumbnails.thumbnail('image',alias='admin_thumbnail_alternative')

配置

ADMIN_THUMBNAIL_DEFAULT_LABEL

默认值:'Preview'

设置此选项将覆盖缩略图使用的默认列名/标题。

ADMIN_THUMBNAIL_FIELD_SUFFIX

默认值:'_thumbnail'

设置此选项将覆盖新创建的缩略图字段的后缀。如果您与要使用的其他字段名有冲突问题,请更改。不要忘记根据需要更新list_display和/或fieldsets中的ModelAdmin

ADMIN_THUMBNAIL_THUMBNAIL_ALIAS

默认值:'admin_thumbnail'

如果easy_thumbnails已安装并可用,则使用ThumbnailerImageField的任何模型字段将使用名为admin_thumbnail的缩略图别名(如果已定义)调整大小。您可以在设置中定义此别名(有关easy_thumbnails文档here的详细信息),也可以提供其他别名作为此设置的值。

ADMIN_THUMBNAIL_STYLE

默认值:{'display': 'block', 'width': '100px', 'height': 'auto'}

将添加到任何缩略图imag的style属性的css属性/值对字典在管理员中输出时。覆盖以提供您自己的样式。

ADMIN_THUMBNAIL_BACKGROUND_STYLE

默认值:{'background': '#000'}

使用background=True选项时添加的css属性/值对字典(请参阅上面的用法)。覆盖以提供您自己的样式。注意,除了在ADMIN_THUMBNAIL_STYLE中定义的任何样式之外,这些样式还使用

开发安装

如果在本地处理包,则可以通过pip

安装开发工具
$ pip install -e .[dev]

flake8

$ flake8

问题、建议、贡献

…欢迎使用Github。感谢您对django-admin-thumbnails的兴趣!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在扩展类中将Java重写为抽象的非抽象方法   java可滚动视图   java Android:隐藏操作栏,保持标签   java如何在Hibernate中使用@Qualifier   java如何在spring MVC中进行Http会话管理以获取数据库中的数据   java如何为TictaToe游戏创建HashMap   java在消息资源文件中查找未使用的值   从源代码构建Kafka时发生java错误   c中的java调用optaplanner DLL#   无法通过Java API访问orientdb函数   任务的java执行失败“:app:ProcessDebuggGoogleService”   java在整个模拟过程中保持代理之间的距离不变   如何在Java中使用BouncyCastle PGP实用程序实现增量加密?   java在安卓中计算画布点的距离   Java回文修订   java在Firebase数据库中存储变量的必要性   java如何使用gquery手势插件在页面上启用文本突出显示?   java如何在Apache camel中使用POST调用REST?