2016-11-26 3 views
1

선택한 카테고리에 따라 양식 필드를 포함하거나 제외하고 싶습니다.조건부 플라스크 -WTF 양식 필드

내가 생각한 한 가지 방법은 이와 같습니다.

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 어떻게 당신은 내가 형태를 포함 권장합니다.

답변

2

당신은 당신의 폼 선택 유형을 처리하는 또 다른 변수를 추가 한 다음 render_template 함수에 전달할 수 : 단지 type으로 평가 사용하여 템플릿에,

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) 

다음 :

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

나는 이런 식으로 생각하고 있었다. 고맙습니다 –