【发布时间】:2020-06-14 09:46:08
【问题描述】:
我正在尝试使用 django-messages 在我的网站上启用用户对用户的消息传递。
当我设置它时,我在尝试访问撰写页面时遇到了这个错误。
TypeError at /messages/compose/
render() got an unexpected keyword argument 'renderer'
检查日志后,它会指向其中一个文件中的包的渲染函数。代码是
return render(request, template_name, {'form': form})
我也在这里查看了这个答案:Django TypeError: render() got an unexpected keyword argument 'renderer'。我尝试添加其他参数,但似乎其他参数也没有被识别。就是说 attrs 和 renderer 是无法识别的参数。
我也在使用 django 2.2 版本,所以我认为这与向后兼容性问题无关。
奇怪的是,我有另一个文件以同样的方式使用渲染函数,而且它工作正常。
另外,正如我引用的链接所建议的那样,检查我所做的 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)
对不起,这让我更加困惑。
根据小部件文件,应该知道 attrs 和渲染器参数。但为什么它似乎无法识别?
这是来自 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
也许我有更深层次的错误需要检查?
【问题讨论】: