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


当我们使用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行,如下图:

django_ueditor_error

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

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




上一篇: Django搭建个人博客----使用MYSQL
下一篇: Django搭建个人博客----Views初学