代码之家  ›  专栏  ›  技术社区  ›  Flimm D. Ben Knoble

Django TypeError:render()得到意外的关键字参数“renderer”

  •  8
  • Flimm D. Ben Knoble  · 技术社区  · 6 年前

    我已升级到Django 2.1,在加载管理界面时看到以下错误:

    TypeError at /admin/foo/bar/1/change/
    
    render() got an unexpected keyword argument 'renderer'
    
    1 回复  |  直到 6 年前
        1
  •  88
  •   Flimm D. Ben Knoble    6 年前

    这几乎可以肯定是因为这一点 change in Django 2.1

    • 支持 Widget.render() renderer 参数已删除。

    django.forms.widgets.Widget 在您的代码中,或者在您的某个依赖项的代码中。代码可能如下所示:

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

    您需要修复签名的方法 render ,所以它看起来像这样:

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

    看一看 the source code of widgets.Widget

        2
  •  -1
  •   rk_cha_py    4 年前

    返回到版本2.0.8

    pip3安装Django==2.0.8

        3
  •  -1
  •   user13572992    4 年前

    Django正在寻找一个可以在 settings.py

    FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'