在網上看到MXShop這個項目,適合Python, Django + drf 進階的,其中遇到 TypeError: render() got an unexpected keyword argument 'renderer', 在百度一番后發現是Django集成DjangoUeditor,才導致這個錯誤的.網上有什么資料都是去改Django的源文件,但是我覺得這樣很不好,因為部署到新環境的時候,都要手動去改一下Django源文件,這樣太麻煩了
所以打算在DjangoUeditor上找原因,最后居然成功找到了,挺高興的,原因是 DjangoUeditor > widgets.py > UEditorWidget 類,間接繼承 django > forms > widgets.py > Widget 類,而 django > forms > widgets.py > Widget 類
def render(self, name, value, attrs=None, renderer=None):
這個方法,比之前版本多添加了這個參數 renderer=None
但是,但是,但是!!!
DjangoUeditor > widgets.py > UEditorWidget 類,重寫這個方法 def render(self, name, value, attrs=None),這個 django 在不斷更新,DjangoUeditor卻沒有更新,所以應該把
def render(self, name, value, attrs=None)
改成!!
def render(self, name, value, attrs=None, renderer=None):
如圖所示!!!!!!!!!!!