chore: automatic commit 2025-04-30 12:48
This commit is contained in:
173
venv/lib/python3.11/site-packages/wtforms/fields/simple.py
Normal file
173
venv/lib/python3.11/site-packages/wtforms/fields/simple.py
Normal file
@@ -0,0 +1,173 @@
|
||||
from .. import widgets
|
||||
from .core import Field
|
||||
|
||||
__all__ = (
|
||||
"BooleanField",
|
||||
"TextAreaField",
|
||||
"PasswordField",
|
||||
"FileField",
|
||||
"MultipleFileField",
|
||||
"HiddenField",
|
||||
"SearchField",
|
||||
"SubmitField",
|
||||
"StringField",
|
||||
"TelField",
|
||||
"URLField",
|
||||
"EmailField",
|
||||
"ColorField",
|
||||
)
|
||||
|
||||
|
||||
class BooleanField(Field):
|
||||
"""
|
||||
Represents an ``<input type="checkbox">``. Set the ``checked``-status by using the
|
||||
``default``-option. Any value for ``default``, e.g. ``default="checked"`` puts
|
||||
``checked`` into the html-element and sets the ``data`` to ``True``
|
||||
|
||||
:param false_values:
|
||||
If provided, a sequence of strings each of which is an exact match
|
||||
string of what is considered a "false" value. Defaults to the tuple
|
||||
``(False, "false", "")``
|
||||
"""
|
||||
|
||||
widget = widgets.CheckboxInput()
|
||||
false_values = (False, "false", "")
|
||||
|
||||
def __init__(self, label=None, validators=None, false_values=None, **kwargs):
|
||||
super().__init__(label, validators, **kwargs)
|
||||
if false_values is not None:
|
||||
self.false_values = false_values
|
||||
|
||||
def process_data(self, value):
|
||||
self.data = bool(value)
|
||||
|
||||
def process_formdata(self, valuelist):
|
||||
if not valuelist or valuelist[0] in self.false_values:
|
||||
self.data = False
|
||||
else:
|
||||
self.data = True
|
||||
|
||||
def _value(self):
|
||||
if self.raw_data:
|
||||
return str(self.raw_data[0])
|
||||
return "y"
|
||||
|
||||
|
||||
class StringField(Field):
|
||||
"""
|
||||
This field is the base for most of the more complicated fields, and
|
||||
represents an ``<input type="text">``.
|
||||
"""
|
||||
|
||||
widget = widgets.TextInput()
|
||||
|
||||
def process_formdata(self, valuelist):
|
||||
if valuelist:
|
||||
self.data = valuelist[0]
|
||||
|
||||
def _value(self):
|
||||
return str(self.data) if self.data is not None else ""
|
||||
|
||||
|
||||
class TextAreaField(StringField):
|
||||
"""
|
||||
This field represents an HTML ``<textarea>`` and can be used to take
|
||||
multi-line input.
|
||||
"""
|
||||
|
||||
widget = widgets.TextArea()
|
||||
|
||||
|
||||
class PasswordField(StringField):
|
||||
"""
|
||||
A StringField, except renders an ``<input type="password">``.
|
||||
|
||||
Also, whatever value is accepted by this field is not rendered back
|
||||
to the browser like normal fields.
|
||||
"""
|
||||
|
||||
widget = widgets.PasswordInput()
|
||||
|
||||
|
||||
class FileField(Field):
|
||||
"""Renders a file upload field.
|
||||
|
||||
By default, the value will be the filename sent in the form data.
|
||||
WTForms **does not** deal with frameworks' file handling capabilities.
|
||||
A WTForms extension for a framework may replace the filename value
|
||||
with an object representing the uploaded data.
|
||||
"""
|
||||
|
||||
widget = widgets.FileInput()
|
||||
|
||||
def _value(self):
|
||||
# browser ignores value of file input for security
|
||||
return False
|
||||
|
||||
|
||||
class MultipleFileField(FileField):
|
||||
"""A :class:`FileField` that allows choosing multiple files."""
|
||||
|
||||
widget = widgets.FileInput(multiple=True)
|
||||
|
||||
def process_formdata(self, valuelist):
|
||||
self.data = valuelist
|
||||
|
||||
|
||||
class HiddenField(StringField):
|
||||
"""
|
||||
HiddenField is a convenience for a StringField with a HiddenInput widget.
|
||||
|
||||
It will render as an ``<input type="hidden">`` but otherwise coerce to a string.
|
||||
"""
|
||||
|
||||
widget = widgets.HiddenInput()
|
||||
|
||||
|
||||
class SubmitField(BooleanField):
|
||||
"""
|
||||
Represents an ``<input type="submit">``. This allows checking if a given
|
||||
submit button has been pressed.
|
||||
"""
|
||||
|
||||
widget = widgets.SubmitInput()
|
||||
|
||||
|
||||
class SearchField(StringField):
|
||||
"""
|
||||
Represents an ``<input type="search">``.
|
||||
"""
|
||||
|
||||
widget = widgets.SearchInput()
|
||||
|
||||
|
||||
class TelField(StringField):
|
||||
"""
|
||||
Represents an ``<input type="tel">``.
|
||||
"""
|
||||
|
||||
widget = widgets.TelInput()
|
||||
|
||||
|
||||
class URLField(StringField):
|
||||
"""
|
||||
Represents an ``<input type="url">``.
|
||||
"""
|
||||
|
||||
widget = widgets.URLInput()
|
||||
|
||||
|
||||
class EmailField(StringField):
|
||||
"""
|
||||
Represents an ``<input type="email">``.
|
||||
"""
|
||||
|
||||
widget = widgets.EmailInput()
|
||||
|
||||
|
||||
class ColorField(StringField):
|
||||
"""
|
||||
Represents an ``<input type="color">``.
|
||||
"""
|
||||
|
||||
widget = widgets.ColorInput()
|
||||
Reference in New Issue
Block a user