render() 得到了一个意外的关键字参数 'renderer'

render() got an unexpected keyword argument 'renderer'

我正在尝试使用 django-messages 在我的网站上启用用户之间的消息传递。

当我设置它时,我在尝试访问撰写页面时遇到了这个错误。

TypeError at /messages/compose/
render() got an unexpected keyword argument 'renderer'

检查日志后,它指向其中一个文件中的包渲染函数。代码是

return render(request, template_name, {'form': form})

我也在 SO 上查看了这个答案:。我尝试添加其他参数,但似乎也没有识别其他参数。说的是attrs和renderer是无法识别的参数。

我也在使用 django 2.2 版本,所以我认为它不存在向后兼容性问题。

奇怪的是,我有另一个文件以同样的方式使用渲染函数,而且它工作正常。

另外,根据我引用的 link 的建议,检查我所做的 widgets.py 文件,这是它的样子

def render(self, name, value, attrs=None, renderer=None):
    print('I got called yo')
    """Render the widget as an HTML string."""
    context = self.get_context(name, value, attrs)
    return self._render(self.template_name, context, renderer)

抱歉,这让我更加困惑。

根据小部件文件,属性和渲染器参数应该是已知的。但为什么它似乎无法识别?

这是来自 django-messages 的代码,我的代码运行正常

return render(request, template_name, {'form': form}) # django messages, template name is declared at the start of the function: template_name='django_messages/compose.html'
return render(request, "sendemail/email.html", {'form': form}) # from my code to send email

我导入的方式在使用渲染命令的两个文件上也是相同的

from django.shortcuts import render

也许我有更深层次的错误需要检查?

正如 arneb 提到的,我必须安装 github 主版本 https://github.com/arneb/django-messages/issues/146#issuecomment-647485205