Django Form неожиданный аргумент ключевого слова

У меня есть форма, которая содержит поле choiceField, и мне нужно заполнить его из представления, поэтому я пытаюсь использовать kwargs внутри функции init следующим образом :

class SelectionFournisseur(forms.Form):
    def __init__(self,*args, **kwargs):
        super(SelectionFournisseur, self).__init__(*args, **kwargs)
        self.fields['Fournisseur'].choices = kwargs.pop("choixF",None)
    
    Fournisseur = forms.ChoiceField(choices = ())

Мое мнение :

formF = SelectionFournisseur(choixF=choices)

но я получаю ошибку BaseForm.__init__() got an unexpected keyword argument 'choixF'

Вы должны сохранить дополнительный аргумент перед вызовом super и после этого использовать сохраненный аргумент

class SelectionFournisseur(forms.Form):
    def __init__(self, *args, **kwargs):
        self._choixF = kwargs.pop('choixF', None)
        super().__init__(*args, **kwargs)
        self.fields['Fournisseur'].choices = self._choixF

Теперь ваш дополнительный аргумент не мешает вызову super().__init__.

Вернуться на верх