Передать json-объект в html-форму для POST-запроса в Django
Данный пост это скорее сообщение о проблеме и ее решении, чем вопрос. Но вопрос тоже будет.
Предположим, по какой-то причине Вам нужно для POST-запроса использовать именно HTML-форму.
В этом случае, Вы разумеется воспользуетесь языком шаблонов Django и будете передавать желаемые значения в виде переменных, заключенных в двойные фигурные скобки.
Т.е. формат синтаксиса такой будет такой
<... value={{ variable }}>
.
И тут нас поджидает сюрприз. А именно, переданный в переменной json-объект будет обрезан по первому ключу.
Т.е., допустим, variable = ['param_0':4, 'param_1':5]
. Результат: "['param_0':4,"...
Великолепно.
Забегая вперед, скажем, что дело конечно же не в json. Будет обрезана любая строка - по первому пробелу.
variable = [1, 2, 3]
--> '[1,'.
variable = 'param_0 - это параметр'
--> 'param_0'.
Переходя к решению, надо сказать, что в процессе не возникает идеи "А не попробовать ли кавычки?". Потому что, очевидно, по всем канонам, тогда ваша переменная станет просто строкой и будет передано не содержимое переменной (ссылается, да), а буквально "{{ variable }}".
Но нет, решение заключается именно в этом. Нужно собрать всю свою волю и поставить кавычки:
<... value='{{ variable }}'>
Среда разработки заботливо сообщит Вам, что теперь это просто строка, окрасив это символьное выражение соответствующим цветом. Тем не менее, именно в таком варианте все сработает как должно.
Собственно, вопрос.
"Рядовой Сидоров, разве ты не видишь, что твоему боевому товарищу за шиворот капает расплавленное железо?!". В смысле, чем объясняется такое - назвал бы его нетривиальным - поведение и в какой документации об этом почитать?
Спасибо)