Django MultiValueField - Как передать выбор в ChoiceField?

У меня есть многозначное поле с полем чарра и полем выбора. Мне нужно передать выбор конструктору поля выбора, однако, когда я пытаюсь передать его в свое многозначное поле, я получаю сообщение об ошибке__init__() получил неожиданный аргумент ключевого слова 'выборы'.

Я знаю, что остальная часть кода работает, потому что, когда я удаляю аргумент выбора ключевых слов из__init__ и супер, многозначное поле отображается правильно, но без выбора.

Вот как я настраиваю свое собственное многозначное поле:

class InputAndChoice(object):
    def __init__(self, text_val='', choice_val=''):
        self.text_val=text_val
        self.choice_val=choice_val

class InputAndChoiceWidget(widgets.MultiWidget):
    def __init__(self, attrs=None):
        widget = (widgets.TextInput(),
                  widgets.Select()
                 )
        super(InputAndChoiceWidget, self).__init__(widget, attrs=attrs)

    def decompress(self,value):
        if value:
            return [value.text_val, value.choice_val]
        return [None, None]


class InputAndChoiceField(forms.MultiValueField):
    widget = InputAndChoiceWidget

    def __init__(self, required=True, widget=None, label=None, initial=None,
                 help_text=None, choices=None):
        field = (
                 fields.CharField(),
                 fields.ChoiceField(choices=choices),
                 )
        super(InputAndChoiceField, self).__init__(fields=field, widget=widget, 
              label=label, initial=initial, help_text=help_text, choices=choices)

И я называю это так:

input_and_choice = InputAndChoiceField(choices=[(1,'first'),(2,'second')])

Итак, как мне передать выбор в поле ChoiceField?

Редактировать:

Я попробовал предложение Стефанва, но все еще не повезло. Я использовал logging.debug для распечатки содержимого InputAndChoiceField в конце init и self.fields [1] .choices содержит правильные значения, как указано выше, однако он не отображает какие-либо варианты в браузере.

Ответы на вопрос(5)

Ваш ответ на вопрос