gpt4 book ai didi

python - WT 表格 : how do I set a default value for an HTML5 Widget?

转载 作者:行者123 更新时间:2023-12-04 09:00:39 27 4
gpt4 key购买 nike

我正在尝试使用 WTForms 颜色输入字段。

如何为输入字段设置默认值(例如 #ff0000)?

这是我定义表单的方式:

from wtforms.widgets.html5 import ColorInput

class ColoursForm(Form):
background_color = StringField(widget=ColorInput())

这是 View :

@app.route("/colours/<token>/", methods=['GET', 'POST'])
def edit_colours(token):
form = ColoursForm(request.form)
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))

在我的 Jinja2 模板 (colours_edit.html) 中,我这样做:

<p> {{ form.background_color() }} Pick a color here </p>

一切正常,但我不知道如何设置默认值。 不起作用的是以下形式:

background_color = StringField(widget=ColorInput(), default="#ff00ff")

最佳答案

执行此操作的一种方法是检查然后在您的 View 中设置数据值。注意获取表单后的两条新行:

@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))

没有默认:

enter image description here

默认#ff00ff:

enter image description here

这是一个最小的例子,供任何好奇的人尝试:

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 与 OPs 相同(确保将其放在 templates 文件夹中):

<p> {{ form.background_color() }} Pick a color here </p>  

我不知道为什么您第一次尝试设置默认值不起作用。也没有为我工作。似乎应该如此。 This答案深入一点。

关于python - WT 表格 : how do I set a default value for an HTML5 Widget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63577249/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com