条件 Flask-WTF 表单字段
Conditional Flask-WTF Forms Fields
我想根据他们选择的类别包括或排除表单域。
我想做的一种方法是这样的。
if form.category.data == "retail":
# return "Retail Form"
form = RetailListingForm()
return render_template('seller/seller_new_listing.html', form=form)
if form.category.data == "wholesale":
# Return Wholesale
form = WholeSaleListingForm()
return render_template('seller/seller_new_listing.html', form=form)
if form.category.data == "wholesale-and-retail":
# Return Both forms by inheritance
return render_template('seller/seller_new_listing.html', form=form)
在html.
{% if form == WholeSaleListingForm %}
{{render_field(form.whole_sale_price)}}
{% endif %}
这是行不通的,因为如果它不是完整的销售表格,就会出现 whole_sale_price
错误和 RetailListingForm
您会如何推荐我在将所有表格都包含在一个模板中的同时包含表格。
您可以添加另一个变量来处理您的表单选择类型,然后将其传递给 render_template
函数:
if form.category.data == "retail":
# return "Retail Form"
type = 'retail'
form = RetailListingForm()
return render_template('seller/seller_new_listing.html', form=form, type=type)
elif form.category.data == "wholesale":
# Return Wholesale
type = 'wholesale'
form = WholeSaleListingForm()
return render_template('seller/seller_new_listing.html', form=form, type=type)
elif form.category.data == "wholesale-and-retail":
# Return Both forms by inheritance
return render_template('seller/seller_new_listing.html', form=form, type=None)
然后,在您的模板中,只需使用 evaluate with type
:
{% if type == 'wholesale' %}
{{ render_field(form.whole_sale_price) }}
{% endif %}
我想根据他们选择的类别包括或排除表单域。
我想做的一种方法是这样的。
if form.category.data == "retail":
# return "Retail Form"
form = RetailListingForm()
return render_template('seller/seller_new_listing.html', form=form)
if form.category.data == "wholesale":
# Return Wholesale
form = WholeSaleListingForm()
return render_template('seller/seller_new_listing.html', form=form)
if form.category.data == "wholesale-and-retail":
# Return Both forms by inheritance
return render_template('seller/seller_new_listing.html', form=form)
在html.
{% if form == WholeSaleListingForm %}
{{render_field(form.whole_sale_price)}}
{% endif %}
这是行不通的,因为如果它不是完整的销售表格,就会出现 whole_sale_price
错误和 RetailListingForm
您会如何推荐我在将所有表格都包含在一个模板中的同时包含表格。
您可以添加另一个变量来处理您的表单选择类型,然后将其传递给 render_template
函数:
if form.category.data == "retail":
# return "Retail Form"
type = 'retail'
form = RetailListingForm()
return render_template('seller/seller_new_listing.html', form=form, type=type)
elif form.category.data == "wholesale":
# Return Wholesale
type = 'wholesale'
form = WholeSaleListingForm()
return render_template('seller/seller_new_listing.html', form=form, type=type)
elif form.category.data == "wholesale-and-retail":
# Return Both forms by inheritance
return render_template('seller/seller_new_listing.html', form=form, type=None)
然后,在您的模板中,只需使用 evaluate with type
:
{% if type == 'wholesale' %}
{{ render_field(form.whole_sale_price) }}
{% endif %}