1 回答
TA贡献1824条经验 获得超5个赞
一种方法是检查然后在您的视图中设置数据值。请注意获取表单后的两条新行:
@app.route("/colours/<token>/", methods=['GET', 'POST'])
def edit_colours(token):
form = ColoursForm(request.form)
if not form.background_color.data:
form.background_color.data = "#ff00ff"
if request.method == 'GET':
return render_template('colours_edit.html', form=form, token=token)
else: # Request = post
return redirect(url_for('view_scoreboard', token=token))
没有默认值:

默认值#ff00ff:

这是一个最小的例子,供任何想尝试的人使用:
from flask import Flask, request, render_template
from wtforms.widgets.html5 import ColorInput
from wtforms import Form, StringField
class ColoursForm(Form):
background_color = StringField(widget=ColorInput())
app = Flask(__name__)
@app.route("/")
def edit_colours():
form = ColoursForm()
if not form.background_color.data:
form.background_color.data = "#ff00ff"
if request.method == "GET":
return render_template("colors_edit.html", form=form)
colors_edit.html和OP一样(一定要放在templates文件夹里):
<p> {{ form.background_color() }} Pick a color here </p>
我不知道为什么您第一次尝试设置默认值不起作用。也没有为我工作。似乎应该如此。这个答案更深入一点。
添加回答
举报
