поле динамического выбора формы django

#python #django

#python #django

Вопрос:

Я не понимаю, что происходит, у меня в моей форме
mylist = forms.MultipleChoiceField(required=False, widget=forms.SelectMultiple, label='MyList',help_text = "help")
Затем у меня есть некоторый jquery на странице, который добавляет к этому динамические значения, но когда я отправляю форму, я получаю значение form.is_valid равным false «объект не имеет атрибута ‘cleaned_data'»

Похоже, это происходит только тогда, когда после того, как я динамически добавляю значения в поле выбора, если я выбираю некоторые перед отправкой. Если я не выбираю значения, очищенные данные [«mylist»] являются пустым массивом.

Как мне это исправить? В принципе, я хочу получить доступ к моему динамически добавляемому списку значений из формы django после отправки.

 edit
-----
    if request.method == 'POST':
        form = MyForm(request.POST)
        action = request.POST['submit']

        if action == 'Update':
                mylist = form.cleaned_data['mylist']
    else:
        form = MyForm()
  

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

 def clean_mylist(self):
    data = self.cleaned_data('mylist')
    return data


def clean(self):
    cleaned_data = self.cleaned_data
    return cleaned_data
  

Комментарии:

1. Можете ли вы опубликовать, как вы обрабатываете форму?

Ответ №1:

При отправке формы MultipleChoiseField проверяется, что все выбранные элементы принадлежат параметру выбора MultipleChoiseField . Если вы позже динамически добавите поля, их, естественно, не будет в наборе выбора. Подробнее здесь.

В качестве решения вы могли бы подумать об использовании виджета CharField with SelectMultiple и переопределить метод очистки.

Комментарии:

1. Я попытался переопределить класс clean и вернуть значение, но я все еще получаю ошибку проверки