zoukankan      html  css  js  c++  java
  • Django中使用富文本编辑器Uedit

    Uedit是百度一款非常好用的富文本编辑器

    一、安装及基本配置

    官方GitHub(有详细的安装使用教程):https://github.com/zhangfisher/DjangoUeditor

    1. settings.py

    INSTALLED_APPS = [
        ...
        'DjangoUeditor',
        ...
    ]

    2. 配置urls

    from django.conf.urls import url, include
    urlpatterns = [
    #  富文本相关url
        url(r'^ueditor/', include('DjangoUeditor.urls')),
    ]

    3. 字段信息

    在需要使用富文本的字段所在的models.py中

    from DjangoUeditor.models import UEditorField
    
    class Articles(models.Model):
        ...
        content = UEditorField(width=1200, height=600, imagePath="article/ueditor/",
                               filePath="article/ueditor/",verbose_name=u"文章内容")
        ...

        注意,在要使用ueditor的字段所在adminx.py的类中,添加

    # 这样就指定了course的detail字段使用ueditor富文本编辑器
    class ArticlesAdmin(object):
        ...
        style_fields = {"content":"ueditor"}

    二、Ueditor插件制作

    1. 插件代码

    在extra_apps.xadmin.plugins中新建ueditor.py

    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)

    2. xadmin中注册插件

    在extra_apps.xadmin.plugins.__init__.py中添加

    PLUGINS = (
        ...
        'ueditor',
    )

    友情提醒


    在Django中使用富文本编辑器

    在HTML页面中,Django处于安全考虑,将文本内容默认转义,我们需要关闭

    来正常输出我们的文章

    {% autoescape off %}
    {{ article.abstract }}
    {% endautoescape %}
     记录一下,空格的转义字符分为如下几种:

    1. &nbsp;&160#;不断行的空白(1个字符宽度)

    2. &ensp;&8194#;半个空白(1个字符宽度)

    3. &emsp;&8195#;一个空白(2个字符宽度)

    4. &thinsp;&8201#;窄空白(小于1个字符宽度)

    平时一般用的是&nbsp;但是在中文中也许有时候更适合用&emsp;

  • 相关阅读:
    微擎框架 手册
    微擎框架小程序 uitl
    微擎框架小程序 入口
    微擎框架 全局
    python——函数
    python基础-文件操作
    基本数据类型-列表_元组_字典
    基本数据类型-(字符串_数字_列表_元组_字典_集合)
    python列表基础操作
    Python字符串基本操作
  • 原文地址:https://www.cnblogs.com/wongbingming/p/7117957.html
Copyright © 2011-2022 走看看