• ueditor 插件集成到 xadmin 中的相关操作


    安装

    点击这里下载源码包 

    在相关的虚拟环境下安装源码方式安装

    切入解压后路径进行

     python setup.py install

    注册

    安装成功按照普通app一般注册在 django 程序的app 中

    使用

    url 添加

    首先加一个 url 在 urls.py 中

    url(r'^ueditor/',include('DjangoUeditor.urls' )),

    字段更换

     在更换相关的字段类型为 UEditorField

    imagePath 还有 filePath 属性为用户上传的图片和文件 需要制定一个目录

      相关详细的字段属性点击 这里

    添加组件

    xadmin  app下的 plugins 文件下新添加一个 ueditor.py 

    # _*_ coding:utf-8 _*_
    __author__ = "yangtuo"
    __date__ = "2019/4/3 20:33"
    
    import xadmin
    from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView
    from DjangoUeditor.models import UEditorField
    from DjangoUeditor.widgets import UEditorWidget
    from django.conf import settings
    
    
    class XadminUEditorWidget(UEditorWidget):
        def __init__(self, **kwargs):
            self.ueditor_options = kwargs
            self.Media.js = None
            super(XadminUEditorWidget, self).__init__(kwargs)
    
    
    class UeditorPlugin(BaseAdminPlugin):
    
        def get_field_style(self, attrs, db_field, style, **kwargs):
            if style == 'ueditor':
                if isinstance(db_field, UEditorField):
                    widget = db_field.formfield().widget
                    param = {}
                    param.update(widget.ueditor_settings)
                    param.update(widget.attrs)
                    return {'widget': XadminUEditorWidget(**param)}
            return attrs
    
        def block_extrahead(self, context, nodes):
            js = '<script type="text/javascript" src="%s"></script>' % (
                        settings.STATIC_URL + "ueditor/ueditor.config.js")  # 自己的静态目录
            js += '<script type="text/javascript" src="%s"></script>' % (
                        settings.STATIC_URL + "ueditor/ueditor.all.min.js")  # 自己的静态目录
            nodes.append(js)
    
    
    xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)
    xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)

     以上代码基本为固定格式拿来即用

    注册插件

    xadmin 下的 plugins 下的 __init__.py 中需要加入被注册的插件(文件名)

    字段效果实现

    设置好这些之后需要在相关字段的 xadmin 识别的时候进行相关的插件选择展示

        style_fields = {"detail": "ueditor"}    # 设置 detail 字段的显示模式为 ueditor 方式

    前端展示处理

     如果不设置, 会按照字符串形式展示无法正确显示,因此此字段在模板调用时需要加此逻辑

    {% autoescape off %}
    {{ course.detail }}
    {% endautoescape %}

    实现效果

  • 相关阅读:
    在java中写出完美的单例模式
    Zookeeper的功能以及工作原理
    java面试题之int和Integer的区别
    ActiveMQ面试专题
    并发队列ConcurrentLinkedQueue、阻塞队列AraayBlockingQueue、阻塞队列LinkedBlockingQueue 区别和使用场景总结
    Python requests 指定网卡ip发出请求
    Python 打包发布exe可执行文件
    Power BI 图标设置
    python git 基础操作
    C#通过SFTP协议操作文件
  • 原文地址:https://www.cnblogs.com/shijieli/p/10651559.html
Copyright © 2020-2023  润新知