为媒体文件提供小部件的django应用程序
django-media-tools的Python项目详细描述
django media tools是一个应用程序,它提供了用于在django admin中管理媒体文件的有用小部件。它不使用任何javascript库。
适用于django 1.10及更新版本。
安装
使用pip安装:
pip install django-media-tools
将media_tools添加到INSTALLED_APPS:
INSTALLED_APPS = [ ... 'media_tools', ]
运行collectstatic命令。它会将媒体工具使用的静态文件复制到静态根目录。
python manage.py collectstatic
预览页面小部件
previewimagewidget是一个相当简单的小部件,您可以使用它来预览ImageField。 图像框位于“浏览”按钮的左侧,如下所示。如果单击图像框,您将注意到图像将在更大的模式框中打开。
图像框:图像预览
模式框:单击图像框时弹出
预览窗口小部件的设置
如果要设置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来覆盖它们。