DjangoUeditor

本文详细介绍如何将百度的Ueditor富文本编辑器整合到Django项目中,并解决使用过程中遇到的问题,包括配置、模型字段定义及错误修复等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ueditor属于百度的一个编辑器,看起来挺好用的,类似于word的操作面板,但功能肯定没有那么全的。

下面说一下怎么把这一编辑器加到我们的django项目中(GitHub地址
现在github上已经更新到python3,但对django2.1支持好像不太好,所以不建议直接pip安装到库里边,这里我们可以直接拿到源码当成一个应用来加到你的项目中,作修改也方便很多。
git clone https://github.com/twz915/DjangoUeditor3.git 至你项目目录下。

现在按照GitHub一通设置,基本就可以用了。

#setting里install_app里新增,其中DjangoUeditor需要在项目目录,不在的话引入方式自己换
INSTALLED_APPS = [
    'DjangoUeditor',]

#这样配置目录可以保证上传的文件可以通过/static/...访问到,实际部署的时候这就没多大用处了
MEDIA_URL = '/static/media_file/'

#上传文件目录
MEDIA_ROOT = os.path.join(STATICFILES_DIRS[0], 'media_file')

在主urls里你要新增一项

path('ueditor/', include('DjangoUeditor.urls'))

在某模型类里边添加字段,各个参数github上有讲,或者自己查看config.json有更详细的说明

from DjangoUeditor.models import UEditorField
body = UEditorField(width='100%', height=300, toolbars="full",
           imagePath="images/%(basename)s_%(datetime)s.%(extname)s",
           filePath="files/", upload_settings={"imageMaxSize": 10240000}, command=None,
           blank=False, verbose_name='正文')

注册好这个模型类之后就可以在管理台看一下效果了,但很不幸会报错render() got an unexpected keyword argument ‘renderer’,那就百度呗,说的都是改django源码。
仔细分析这个错误其实不就是render函数有一个不知道是什么东西的renderer参数呗,最后在DjangoUeditor目录下的widgets.py看到render函数是这么定义的def render(self, name, value, attrs=None),这敢情原来都没有renderer这个参数,而django里render函数是有这个参数的,百度好多做法都是注释掉源码,但其实这里可以在render函数里加个参数,修改后为def render(self, name, value, attrs=None, renderer=None),好了这下不报错了。

为了显示图片你还需要修改下url地址拼接,在DjangoUeditor下的views.py修改url返回参数

'url': urljoin(USettings.gSettings.MEDIA_URL, OutputPathFormat)

由于是在两个服务器上部署,会存在跨域请求,还需在setting.py里新增

#UEDITOR_SETTINGS={ "config":{ #这里放ueditor.config.js里面的配置项....... }, "upload":{ #这里放php/config.json里面的配置项....... } }
#配置跨域访问路径
UEDITOR_SETTINGS = {"upload": {'imageUrlPrefix': SERVER_IP, 'scrawlUrlPrefix': SERVER_IP,
                                'snapscreenUrlPrefix': SERVER_IP, 'fileUrlPrefix': SERVER_IP,
                                "videoUrlPrefix": SERVER_IP}
                    }

原博客

DjangoUeditorUeditor封装为一个Django app,提供文件/图片等上传功能,提供UEditorField、UEditorWidget等封装类,简化UeditorDjango中的应用。注:Django是Python世界影响最大的Web框架。 本模块帮助在Django应用中集成百度Ueditor HTML编辑器,Django是Python世界最有影响力的web框架。 Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大,像表格可以直接拖动调整单元格大小等。 更新历史 [2014-7-8] Ver:1.8.143 Fix:当admin使用inlines生成多实例时widget命名不正确的问题 [2014-6-27] Ver:1.7.143 Fix:解决在admin管理后台的使用问题。 增加year,month,day的上传路径变量 [2014-6-25] 由于Ueditor从1.4版本开始,API发生了非常大的改动和不兼容,导致DjangoUeditor上一个版本的升级后上传功能不能用等,因此 本次重新设计了API,后端上传的代码几乎完全重写了。 更新到1.5.143,即版本号为1.5,使用了Ueditor 1.4.3版本。 重新设计了UeditorWidget、UeditorField。 新增了自定义Ueditor按钮的功能 注意:本次升级与之前版本不兼容,但是在使用体验上差别不大。 [2014-6-16] 更新到Ueditor 1.4.3 [2014-5-15] 增加不过滤 script,style ,不自动转div为p的脚本 修复在django 1.6和python2.7下的警告 使用 json 代替 django 中的 simplejson 用content_type 代替原来的 mime_type [2014-5-7] 更新到Ueditor 1.3.6 BUGfix:更新UEditor文件夹名字,避免在linux出现找不到静态文件问题 添加一种样式,besttome, 希望大家喜欢 [2013-2-22] 更新到Ueditor 1.2.5 BUGfix:更新UEditor文件夹名字,避免在linux出现找不到静态文件问题 BUGfix:现在支持south更新了 针对csrf导致上传图片失败的问题,现在默认上传视图开启了csrf_exempt装饰 相关阅读 百度编辑器UEditor插件DjangoUeditor使用方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值