为媒体文件提供小部件的django应用程序

django-media-tools的Python项目详细描述


django media tools是一个应用程序,它提供了用于在django admin中管理媒体文件的有用小部件。它不使用任何javascript库。

适用于django 1.10及更新版本。

安装

  1. 使用pip安装:

    pip install django-media-tools
    
  2. media_tools添加到INSTALLED_APPS

    INSTALLED_APPS = [
       ...
       'media_tools',
    ]
    
  3. 运行collectstatic命令。它会将媒体工具使用的静态文件复制到静态根目录。

    python manage.py collectstatic
    

预览页面小部件

previewimagewidget是一个相当简单的小部件,您可以使用它来预览ImageField。 图像框位于“浏览”按钮的左侧,如下所示。如果单击图像框,您将注意到图像将在更大的模式框中打开。

图像框:图像预览

模式框:单击图像框时弹出

https://screenshotscdn.firefoxusercontent.com/images/c7cce7f5-cfe6-4de0-9d1b-1dc9529c87f4.png

预览窗口小部件的设置

如果要设置previewimagewidget的默认值,请将DJANGO_MEDIA_TOOLS_CONFIG添加到settings.py文件中。

DJANGO_MEDIA_TOOLS_CONFIG = {
    # max sizes of preview image-box
    'preview_max_height': '150px',
    'preview_max_width': '150px',

    # max size of preview modal-box (the box that is opened when clicked on image)
    'preview_modal_max_height': '90%',
    'preview_modal_max_width': '90%',

    # Hides 'currently' label on admin
    'hide_currently': False,

    # Shows the image url at the bottom of the modal if set to True
    'show_caption': True
}

如何使用预览窗口小部件

示例models.py

class Product(models.Model):
    name = models.CharField(_('name'), max_length=50)
    photo = models.ImageField(_('Photo'), upload_to='testing/product', blank=True)
    banner = models.ImageField(_('Banner'), upload_to='testing/product', blank=True)

示例forms.py

from media_tools.widgets import ImagePreviewWidget
from .models import Product

class ProductForm(forms.ModelForm):
    class Meta:
        model = Product
        fields = '__all__'
        widgets = {
            'photo': ImagePreviewWidget(preview_max_height='80px', preview_modal_max_height='600px', hide_currently=True, ),
            'banner': ImagePreviewWidget(preview_max_width='150px', preview_modal_max_width='50%', show_caption=False),
        }

如您所见,您可以通过将默认设置设为kwargs来覆盖它们。

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

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像