Django MultipleChoiceField не отправляет действительные данные в POSTPython

Программы на Python
Ответить
Anonymous
 Django MultipleChoiceField не отправляет действительные данные в POST

Сообщение Anonymous »

В моей форме django есть поле MultipleChoiceField со списком кортежей в качестве параметров.

Код: Выделить всё

choice = forms.MultipleChoiceField(
choices = [("1", "Option 1"), ("2", "Option 2"), ("3", "Option 3")],
label="Choose an option",
widget=forms.Select(),
required=True,
)
Это создает элемент DOM при его загрузке

Код: Выделить всё

Option 1
Option 2
Option 3

Однако, когда он отправляет запрос POST в отправляемую форму, вместо предоставления
значения («1», «Вариант 1») он просто отправляет «1». Таким образом, это вызывает ошибку ValidationError
в MultipleChoiceField при его проверке, поскольку в нем есть функция, которая требует, чтобы
значение POST было списком или кортежем.< /p>

Код: Выделить всё

def to_python(self, value):
if not value:
return []
elif not isinstance(value, (list, tuple)):
raise ValidationError(
self.error_messages["invalid_list"], code="invalid_list"
)
return [str(val) for val in value]
Есть ли какой-нибудь способ установить значение POST элемента DOM, чтобы он отправлял этот кортеж?
Я пытался изменить его в представлениях Функция .py с использованием field.data, но получена. Этот экземпляр QueryDict является неизменяемым
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ta-in-post
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»