WTForms Flask - Как установить стандартное значение value, получаемое из переменной, перед рендером?
С недавнего времени я решил в своем небольшом проекте переделать все формы и перевести их на WTForms, дабы обезопасить их. Все проходило нормально до тех пор, пока мне не потребовалось во время рендеринга формы выдавать её с уже заполненными полями, данные для которых получаются из БД (а-ля настройки профиля).
Долго искал способы реализации, но так ничего не нашел (скорее всего плохо искал). В большинстве случаев описывались ситуации, когда стандартное значение нужно установить статичным т.е. value="123" и подобные моменты. Пробовал реализовать на костылях при помощи form.'название поля'.data, но в таком случае происходило именно автозаполнение и при отправке запроса на сервер, приходила форма без изменений, сделанных пользователем. Думал попробовать заменять значение value шаблонизатором, но при записи <p>{{ form.user_name(class="ifisverify", required='required', value={{ user_name }} ) }}</p> вторые {{}} скобки игнорируются и вместо замещаемых данных, видят выражение как строку из-за вложенности.
Кто сталкивался с подобной необходимостью установить стандартное значение поля, получаемое из переменной, перед рендерингом, объясните пропащему каким способом это можно нормально реализовать.
P.S. Только начал разбираться с WTForms и Flask в целом, так что весьма вероятно, что где-то я что-то упустил.
Ответы (1 шт):
Ещё покопавшись нашел, как оказалось, простое решение проблемы. В HTML пишем:
{{ form.имя_поля(value=название_переменной_без_кавычек_и_скобок) }}
В .py:
render_template('название_страницы.html', название_переменной_без_кавычек_и_скобок= пермененная_из_которой_нужно_передать_сначение_jinja)