Django рендерер виджетов форм - PullRequest
0 голосов
/ 07 марта 2020

Я портирую некоторый код с Django 1.9 на 1.11. Существует следующая форма:

class FruitForm(FormFieldMixin, forms.Form):
         choices=(
             ("app", "Apple"),
             ("pea", "Pea, not Pear"),
         ),
         widget=forms.RadioSelect(renderer=CustomRadioFieldRenderer),
     )

это не удается в 1.11 с: TypeError: __init__() got an unexpected keyword argument 'renderer'

при просмотре исходного кода, RadioSelect в 1.9 наследуется от RendererMixin , который действительно принимает аргумент рендерера .

RadioSelect в 1.11 наследуется только от ChoiceWidget , который, в свою очередь, наследуется от Виджет . Визуализация виджета принимает визуализацию .

Это согласуется с примечаниями к выпуску Django для 1.11 . Таким образом, новый способ состоял бы в том, чтобы передать средство визуализации при вызове визуализации виджета. Здесь есть некоторые косвенные указания здесь , но я не могу представить, как можно было бы использовать Widget.render напрямую. Я не хочу устанавливать универсальный рендер для форм, только для этого класса.

Вкратце, как мне сделать этот класс с настраиваемым средством визуализации виджетов в 1.11, где у нас нет аргумента renderer. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...