Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

flask-wtforms field required

how i can add tag required on this flask code :

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

actual output is :

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

need this output bat give error :

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

im tried this bat give error :

{{ form.youtube_href(type='url', class='form-control', 'required') }}
like image 467
AutoSoft Avatar asked Dec 18 '22 22:12

AutoSoft


1 Answers

As of WTForms 2.2 (June 2nd, 2018), fields now render the required attribute if they have a validator that sets the required flag, such as DataRequired and InputRequired. If for some reason you don't want to render the attribute, you can pass required=False. Or if you want to disable all browser validation, you can set the novalidate attribute in the form tag. In general you should prefer to leave browser validation enabled, because it prevents a request/response for simple validation, which is desirable.


You are passing a positional argument after keyword arguments, which is a syntax error. Instead, pass required=True, which will set a bare attribute on the tag. Check the flags on a field to see if a Required validator was set: field.flags.required is a boolean. Create a URLField rather than passing the type manually.

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="">
like image 62
davidism Avatar answered Dec 30 '22 18:12

davidism