2016-08-12 2 views
-4

Я думаю, что значения для скрытых полей полностью игнорируются Django во время POST.Возможно, скрытые поля django?

  1. нет cleaned_data для этого поля
  2. никакого способа изменить это и самое важное:
  3. При необходимости причины ошибки «Введите список значений.» даже если вы можете увидеть, что значения в коде: <input id="id_names" name="names" type="hidden" value="[35]" />

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

+3

Скрытые поля скрывают интерфейс для пользователя. Другими словами, они ведут себя точно как нормальное поле - это включает в себя то, что они могут потребоваться. Также обратите внимание, что вы можете редактировать значение скрытого поля с помощью любого современного браузера, который включает в себя некоторые инструменты для разработчиков. С учетом сказанного, я не совсем уверен, в чем ваш вопрос. – knbk

+1

Ваша проблема в том, что 'ModelMultipleChoiceField' не работает с' HiddenInput'. Поле ожидает список значений, например '[35]', но виджет возвращает строку *, например '' [35] ''. Тот факт, что 'HiddenInput' скрыт, не имеет значения, вы получите ту же проблему с' TextInput'. Вы можете попробовать написать скрытый виджет, который работает с 'ModelMultipleChoiceField' (я не смог найти существующий при поиске). В большинстве случаев вам не нужно скрытое поле вообще, вы можете обработать это поле в представлении. Однако вы так мало указали в своих трех вопросах, которые я не могу сказать. – Alasdair

+0

@knbk Все, что вы написали, это тавтология. Мой вопрос - гипотеза \t , что скрытое поле игнорируется POST, потому что оно не ведет себя так, как должно быть в обычном HTML - я имею в виду, что если POST-запрос будет обрабатываться PHP, он будет работать правильно. Но я ДУМАЮ, что DJANGO игнорирует скрытое значение из POST. –

ответ

0

Нет, это не так. Проблема в том, что значение HiddenField всегда является строкой, а если поле является другим типом, то результат неправильный. «Enter a list of values» означает, что результатом является другой тип, а не результат.

Смежные вопросы