【问题标题】:Conditional Flask-WTF Forms Fields条件 Flask-WTF 表单字段
【发布时间】:2016-11-26 23:33:24
【问题描述】:

我想根据他们选择的类别包括或排除表单字段。

我想这样做的一种方式是这样的。

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 你会如何建议我在一个模板中包含所有表格。

【问题讨论】:

    标签: python flask flask-wtforms


    【解决方案1】:

    您可以添加另一个变量来处理您的表单选择类型,然后将其传递给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)
    

    然后,在您的模板中,只需使用带有 type 的评估:

    {% if type == 'wholesale' %}
        {{ render_field(form.whole_sale_price) }}
    {% endif %}
    

    【讨论】:

    • 我也在考虑这样做。谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多