博客使用富文本编辑器中遇到的一些坑

本文介绍了解决Django项目中富文本编辑器出现的'renderer'参数错误的方法,提供了两种解决方案,一种是修改DjangoUeditor的源代码,另一种是调整python环境的源码。

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

当我们使用Django开发个人网站时,如果用到富文本编辑器时,有时会遇到这个问题。

我们启动项目,进入文章发布页面。提示出错:

render() got an unexpected keyword argument 'renderer'

如图:在这里插入图片描述

网上一名不愿意透漏姓名的网友告诉我们,错误产生的原因位置是:

DjangoUeditor > widgets.py > UEditorWidget 类,间接继承 django > forms > widgets.py > Widget 类,
而 django > forms > widgets.py > Widget 类。

解决方法目前了解到有两种:

  • 第一种

第一种也是我们推荐使用的。

即修改DjangoUeditor里的源代码:

位置在:

DjangoUeditor > widgets.py > UEditorWidget类中,大概在167行左右(版本不同,位置不相同)
重新render函数:具体如下:

源代码:def render(self, name, value, attrs=None):

修改为:def render(self, name, value, attrs=None, renderer=None):

  • 第二种

第二种是网上随便就能搜到的,但是我不推荐,因为修改的是python环境的源码。

这虽然可以实现,是不是听着就不合适,修改这个源码的一般都是大神,你要是也是,当我没有说。

修改位置就是我们在前端可以看到的错误位置:

site-packages\django\forms\boundfield.py in as_widget, line 93

就是这个源码的第93行,如下图:

在这里插入图片描述

把93行注销后,就可以使用了。
虽然比较简单,但是极力不推荐,能不修改系统源码的就不要修改。

还有其他方法的欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值