2015-10-23 44 views
-1

我怎麼可以添加這個燒瓶規範要求標籤:燒瓶wtforms場需要

{{ form.youtube_href(type='url', class='form-control') }} 

實際輸出爲

<input class="form-control" id="youtube_href" name="youtube_href" value="" type="url"> 

需要這個輸出蝙蝠給出錯誤:

<input class="form-control" id="youtube_href" name="youtube_href" value="" type="url" required> 

我試過這個蝙蝠給錯誤:

{{form.youtube_href(類型= 'URL',類= '形式控制', '需要')}}

回答

1

您正在傳遞關鍵字參數之後的位置參數,這是一種語法錯誤。相反,通過required=True,這將設置標籤上的裸屬性。檢查字段上的標誌以查看是否設置了Required驗證程序:field.flags.required是布爾值。創建一個URLField而不是手動傳遞類型。

from flask_wtf import Form 
from wtforms.fields.html5 import URLField 
from wtforms.validators import InputRequired 

class MyForm(Form): 
    youtube_href = URLField(validators=[InputRequired()]) 

form = MyForm() 
print(form.youtube_href(required=form.youtube_href.flags.required)) 
# <input id="youtube_href" name="youtube_href" required type="url" value=""> 
+1

不應該WTForms加上'required'時自動標誌是簡單地把模板required='required'例打電話給你的字段名在現場設置?我明白這是預期的行爲,但我不明白這個設計選擇。 –

+0

對於任何感興趣的人,這裏討論這裏:https://github.com/wtforms/wtforms/issues/130 –

+1

@Jérôme不,因爲html5屬性只是一種可以表示的方式。 WTForms不會猜測你想要什麼。 – davidism

1

那些誰只是想將required屬性添加到他們的HTML的輸入,這可以通過以下拉賈由西蒙上述評論來完成。

<form> 
    ... 
    {{myform.my_name_field(required='required')}} 
    {{myform.my_email_field(required='required')}} 
    ... 
</form> 

上面的代碼會導致類似這樣的字段:

<input id="my_name_field" name="my_name_field" required="required" type="text" value="">