首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在django admin中裁剪使用django-filer选择的图像

如何在django admin中裁剪使用django-filer选择的图像
EN

Stack Overflow用户
提问于 2014-11-20 14:51:11
回答 1查看 1.2K关注 0票数 1

我使用django-filer来管理图像。为FilerImageField选择一个后,如何裁剪和显示图像?

EN

回答 1

Stack Overflow用户

发布于 2014-11-20 14:51:11

这是一个结合了django-filer和django-image-cropping的代码片段。只需使用CroppableFilerImageField而不是FilerImageField模型即可。

请注意,您仍需在选择图像后按“保存并继续编辑”才能进行裁剪。

代码语言:javascript
复制
from django.conf import settings

from filer import settings as filer_settings
from filer.fields.image import (
    AdminImageWidget, AdminImageFormField, FilerImageField,
)
from filer.models import File


class CroppableImageWidget(AdminImageWidget):
    def render(self, name, value, attrs=None):
        if value:
            file_obj = File.objects.get(pk=value)
            attrs = attrs or {}
            attrs.update({
                'class': 'crop-thumb',
                'data-thumbnail-url':
                    file_obj.thumbnails['admin_sidebar_preview'],
                'data-field-name': name,
                'data-org-width': file_obj.width,
                'data-org-height': file_obj.height,
            })

        return super().render(name, value, attrs)

    class Media:
        js = (
            filer_settings.FILER_STATICMEDIA_PREFIX + 'js/popup_handling.js',
            getattr(settings, 'JQUERY_URL',
                    'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'),
            "image_cropping/js/jquery.Jcrop.min.js",
            "image_cropping/image_cropping.js",
        )
        css = {'all': ("image_cropping/css/jquery.Jcrop.min.css",)}


class CroppableFormField(AdminImageFormField):
    widget = CroppableImageWidget


class CroppableFilerImageField(FilerImageField):
    default_form_class = CroppableFormField
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27033485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档