• xadmin集成DjangoUeditor


    1、安装

     安装DjangoUeditor

      1)去GitHub上面下载djangoueditor源码包(https://github.com/twz915/DjangoUeditor3)

         然后进入源码的setup.py所在目录,执行pyton setup.py install安装。

      2)直接通过pip命令安装

        pip install DjangoUeditor

     然后将DjangoUeditor放到settings文件的INSTALLED_APPS中

    2、配置url

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

    3、在model中使用

      from DjangoUeditor.models import UEditorField

      field = UEditorField(verbose_name = "", width=200, height=300, imagepath="", filepath="", default="", toolbar=[[]])

      常用参数说明:

        verbose_name:字段显示名

        width/height:富文本宽高

        imagepath/filepath:图片/文件存储相对路径(相对settings中配置的MEDIA_ROOT)

        toolbar:工具栏上的功能按钮,注意这里的toolbar是嵌套的列表

    4、准备工作都做好了,接下来需要在xadmin中集成调用,集成方法:

      在xadmin--->plugin中新建ueditor.py(名字自定义),内容如下:

      

    import xadmin
    from xadmin.views import BaseAdminPlugin, CreateAdminView, 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):
        # 识别xadmin中的style_field
        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
    
    # 在生成的页面中加入自己的js文件
    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--->plugin--->__init__.py文件的PLUGINS中加入我们自定义的插件ueditor

        

      这样就完成了ueditor在xadmin中的集成

      最后,在注册modelXadmin的中,加入style_fields={"字段名":"ueditor"}

      

  • 相关阅读:
    HDU1058Humble Numbers
    HDU1056 HangOver
    HDU1048The Hardest Problem Ever
    HDU 1028Ignatius and the Princess III(母函数简单题)
    HDU1014Uniform Generator
    HDU1013Digital Roots
    HDU1005Number Sequence(找规律)
    HDU1004 Let the Balloon Rise(map的简单用法)
    HDU1002 -A + B Problem II(大数a+b)
    Codeforces Round #363 (Div. 2)->C. Vacations
  • 原文地址:https://www.cnblogs.com/fiona-zhong/p/10233697.html
Copyright © 2020-2023  润新知