WD5 - разработка сайтов

Django. render() got an unexpected keyword argument 'renderer'

При обновлении Django выше версии 2.1 возникает ошибка

 

render() got an unexpected keyword argument 'renderer'

Ошибка возникает из-за старого кода, который использует django.forms.widgets.Widget

Это может быть как код написанный самостоятельно, так и импортируемый. В моём случае было необходимо исправить виджет ckeditor.

Для того, чтобы виджет в админке заработал, необходимо добавить параметр renderer, т.к. поддержка метода Widget.render() без аргумента renderer была удалена.

Пример старого и нового кода:


# найти старую строку отвечающую за render, 
# может быть в импортах сторонних виджетов
def render(self, name, value, attrs=None):

# добавить новый аргумент renderer для старго кода 
def render(self, name, value, attrs=None, renderer=None):