Я пытаюсь, чтобы функция представления вставляла десятичные значения (в конечном итоге из базы данных) в поле формы WTF. Значение не отображается, пока я не изменю поле на строковое поле. Нужно ли что-то дополнительное, чтобы вставить числовое значение в десятичное поле?
Я создал небольшой, надеюсь, воспроизводимый пример, чтобы проверить только эту функциональность. У него есть одно поле, которое при загрузке страницы должно вставить значение в поле.
Первоначально я попытался сделать это с десятичным полем и попытался вставить случайное число, но это число не отображаетсякогда страница отображается. То же самое происходит, когда поле изменяется на IntegerField или FloatField
. При изменении поля формы на строковое поле значение будет отображаться при отображении страницы - однако это не идеальное решение, поскольку значение будетстрока.
rout.py
from flask import render_template, flash
from app import app
from app.forms import TestForm
@app.route('/',methods=['GET','POST'])
@app.route('/index/',methods=['GET','POST'])
def index():
# define form
test_form = TestForm()
test_form.testfield.data = 10
return render_template('sandbox_home.html',
test_form = test_form
)
forms.py
from flask_wtf import FlaskForm
from wtforms import StringField,DecimalField
class TestForm(FlaskForm):
testfield=StringField()
sandbox_home. html
<!doctype html>
<title>My Safe Place</title>
<p>I exist to paste values to form fields!</p>
<form action="" method="post" novalidate>
{{ test_form.hidden_tag() }}
{{ test_form.testfield() }}
</form>
Я ожидаю, что значение будет отображаться независимо от типа поля, если вход имеет правильный тип. Я предполагаю, что это проблема с типом данных, но я не уверен, где проблема.