Я портирую некоторый код с 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
. Спасибо.