Django TypeError:render()得到了意外的关键字参数'renderer' [英] Django TypeError: render() got an unexpected keyword argument 'renderer'

查看:150
本文介绍了Django TypeError:render()得到了意外的关键字参数'renderer'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经升级到Django 2.1,并且在加载管理界面时看到此错误:

I've upgraded to Django 2.1, and I'm seeing this error when I load the admin interface:


TypeError at /admin/foo/bar/1/change/

render() got an unexpected keyword argument 'renderer'



推荐答案

这几乎可以肯定是因为该向后不兼容的更改Django 2.1

This is almost certainly because of this backwards-incompatible change in Django 2.1:



  • 支持 Widget.render()方法,而无需 renderer 参数已删除。

  • Support for Widget.render() methods without the renderer argument is removed.

您可能已将 django.forms.widgets.Widget 在您的代码中,或在您依赖项之一的代码中。代码可能看起来像这样:

You may have subclassed django.forms.widgets.Widget in your code, or in the code of one of your dependencies. The code may look like this:

from django.forms import widgets

class ExampleWidget(widgets.Widget):
    def render(self, name, value, attrs=None):
        # ...

您需要修复 render 的方法签名,使其看起来像这样:

You need to fix the method signature of render, so that it looks like this:

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

看看 widgets.Widget 的代码,如果要检查的话。

Have a look at the source code of widgets.Widget if you want to check.

这篇关于Django TypeError:render()得到了意外的关键字参数'renderer'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆