Django框架使用富文本编辑器Uedit的方法分析
作者:站在两个世界的边缘 发布时间:2021-01-19 21:03:47
标签:Django框架,富文本编辑器,Uedit
本文实例讲述了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. &160#;不断行的空白(1个字符宽度)
2.  &8194#;半个空白(1个字符宽度)
3.  &8195#;一个空白(2个字符宽度)
4.  &8201#;窄空白(小于1个字符宽度)
平时一般用的是 但是在中文中也许有时候更适合用 
希望本文所述对大家基于Django框架的Python程序设计有所帮助。
来源:https://www.cnblogs.com/wongbingming/p/7117957.html


猜你喜欢
- 本文实例为大家分享了vue简单的图书管理具体代码,供大家参考,具体内容如下<table class="table table
- 概述条件语句需要开发者通过指定一个或多个条件并通过测试条件是否为 true 来决定是否执行指定语句并在条件为 false 的情况再执行另外的
- 1 与达尔文对话140年前,1858年7月1日,达尔文在英伦岛发表了自己有关自然选择的杰出论文。他提出,生物的发展规律是物竞天择。经过物竞,
- z-blog摘要图文混排,在月光的博客早已有介绍,但是他的图文混排是基于一篇文章只定义一个Tag的情况,对于我这样习惯多tag的博客,再更改
- python简单的学生信息管理系统-文件版,供大家参考,具体内容如下功能如下主函数部分增加学生信息修改学生信息删除学生信息查询学生显示所有学
- 仪表盘仪表盘的效果我只能说炫酷而已,如果想要运用在实际的场景中,我其实也不清楚那个场景比较适合,但是pyecharts毕竟是炫酷可视化的利器
- 如果内部修改外部变量需要nonlocal,globaldef f1(): print("in f1..") num=11
- 之前已经go get安装了gin, 现在来玩下用go gin server作图片上传服务, 代码目录如下:taoge:~/test_gin$
- 环境:Windows 10 专业版pycharm pro 2020.3django 3.2.1xadmin 选django2的版本一,安装这
- 目录迭代器生成器总结迭代器聊迭代器前我们要先清楚迭代的概念:通常来讲从一个对象中依次取出数据,这个过程叫做遍历,这个手段称为迭代(重复执行某
- 因此计划先把数据转插入一个临时表,再对临时表的数据进行分析。 问题点是如何动态创建临时表。原先Insus.NET使用下面代码实现: 代码如下
- Pandas 中的resample函数用于各种频率的转换工作。resample的参数如下:参数描述freq转换频率axis=0重采样的轴cl
- 0. 本文借助django-debug-toolbar来展现效果django-debug-toolbar的安装1. 介绍select_rel
- 1 端口映射举个例子来说明一下端口映射的作用。有A、B、C三台计算机,A、B互通,B、C互通,但是A、C不通,这个时候在C上开了一个Web服
- 1 本地包声明包是Go程序的基本单位,所以每个Go程序源代码的开始都是一个包声明:package pkgName这就是包声明,pkgName
- 目录程序的组织结构顺序结构对象的布尔值选择结构单分支结构小实验双分支结构小实验多分支结构小实验python代码的独特写法分支结构_嵌套if的
- Python安装过程,供大家参考,具体内容如下1.下载安装程序我们安装Python的一个重要目的是为了用IAR编译CC2640 OAD文件时
- 关于list的insert函数list#insert(ind,value)在ind元素前面插入value首先对ind进行预处理:如果ind&
- DBI安装:DBI详细信息参考:http://dbi.perl.org/ 1.下载DBI包: wget http://search.cpan
- 1.环境mysql 8.0Django 3.2pycharm 2021.112. (No changes detected)及解决2.1 问