Как получить отправленные значения массива текстового поля в Django? - PullRequest
0 голосов
/ 18 июня 2011

У меня есть такой массив текстовых полей

<input type="text" value="" name="key[]" />
<input type="text" value="" name="key[]" />
<input type="text" value="" name="key[]" />

в python доступ к объявленному значению как

keys = postDict['key[]']

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

Проблема

Проблема в том, что я добавляю текстовое поле в div с именем key , когда нажимается кнопка с именем MORE . Форма не содержит сгенерированных во время выполнения текстовых полей значений.

Ответы [ 2 ]

1 голос
/ 18 июня 2011

Как говорит Даниэль, используйте request.POST.getlist ('key'), чтобы получить все значения. НО, из вашего комментария звучит так, что имя поля, для которого вы пытаетесь получить данные, одинаково для всех элементов, и в этом случае .getlist () просто возвращает последний, который он может получить. (То же самое произошло бы с .get ()).

Итак, Django получает необработанные данные, которые вы хотите, но уничтожает их, когда вы пытаетесь .get () из-за столкновения клавиш.

Что-нибудь мешает вам использовать разные имена для каждого ввода текста? Если нет, то я бы пошел по этому пути, так как в целом он более здравый.

PS - PHPism в вашем примере заставил меня думать, что вы довольно новичок в Django. Если это так, ознакомьтесь с этим замечательным руководством по библиотеке форм Django

1 голос
/ 18 июня 2011

Не называйте поле key[]. Это PHP-изм.

Используйте request.POST.getlist('key'), чтобы получить все значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...