#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 и вернуть значение, но я все еще получаю ошибку проверки