Docs for FORM

[ Python Tutorial ] [ Python Libraries ] [ web2py epydoc ]

Description


<type 'type'> extends (<class 'gluon.html.DIV'>,)




















example::

>>>
from validators import IS_NOT_EMPTY
>>> form=FORM(INPUT(_name="test", requires=IS_NOT_EMPTY()))
>>>
form.xml()
'<form action="" enctype="multipart/form-data" method="post"><input name="test" type="text" /></form>'

a FORM is container for INPUT, TEXTAREA, SELECT and other helpers

form has one important method::

form.accepts(request.vars, session)

if form is accepted (and all validators pass) form.vars contains the
accepted vars, otherwise form.errors contains the errors.
in case of errors the form is modified to present the errors to the user.


Attributes


FORM.__class__ <type 'type'> extends (<type 'object'>,) belongs to class <type 'type'>
type(object) -> the object's type type(name, bases, dict) -> a new type

FORM.__delattr__ <type 'wrapper_descriptor'> belongs to class <type 'wrapper_descriptor'>
x.__delattr__('name') <==> del x.name

FORM.__delitem__ <type 'instancemethod'> belongs to class <type 'instancemethod'>
deletes attribute with name 'i' or component #i. :param i: index if i is a string: the name of the attribute otherwise references to number of the component

FORM.__dict__ <type 'dictproxy'> belongs to class <type 'dictproxy'>

FORM.__doc__ <type 'str'> belongs to class <type 'str'>
str(object) -> string Return a nice string representation of the object. If the argument is a string, the return value is the same object.

FORM.__getattribute__ <type 'wrapper_descriptor'> belongs to class <type 'wrapper_descriptor'>
x.__getattribute__('name') <==> x.name

FORM.__getitem__ <type 'instancemethod'> belongs to class <type 'instancemethod'>
gets attribute with name 'i' or component #i. If attribute 'i' is not found returns None :param i: index if i is a string: the name of the attribute otherwise references to number of the component

FORM.__hash__ <type 'wrapper_descriptor'> belongs to class <type 'wrapper_descriptor'>
x.__hash__() <==> hash(x)

FORM.__init__ <type 'instancemethod'> belongs to class <type 'instancemethod'>

FORM.__len__ <type 'instancemethod'> belongs to class <type 'instancemethod'>
returns the number of included components

FORM.__module__ <type 'str'> belongs to class <type 'str'>
str(object) -> string Return a nice string representation of the object. If the argument is a string, the return value is the same object.

FORM.__new__ <type 'builtin_function_or_method'> belongs to class <type 'builtin_function_or_method'>
T.__new__(S, ...) -> a new object with type S, a subtype of T

FORM.__nonzero__ <type 'instancemethod'> belongs to class <type 'instancemethod'>
always return True

FORM.__reduce__ <type 'method_descriptor'> belongs to class <type 'method_descriptor'>
helper for pickle

FORM.__reduce_ex__ <type 'method_descriptor'> belongs to class <type 'method_descriptor'>
helper for pickle

FORM.__repr__ <type 'wrapper_descriptor'> belongs to class <type 'wrapper_descriptor'>
x.__repr__() <==> repr(x)

FORM.__setattr__ <type 'wrapper_descriptor'> belongs to class <type 'wrapper_descriptor'>
x.__setattr__('name', value) <==> x.name = value

FORM.__setitem__ <type 'instancemethod'> belongs to class <type 'instancemethod'>
sets attribute with name 'i' or component #i. :param i: index if i is a string: the name of the attribute otherwise references to number of the component :param value: the new value

FORM.__str__ <type 'instancemethod'> belongs to class <type 'instancemethod'>
str(COMPONENT) returns equals COMPONENT.xml()

FORM.__weakref__ <type 'getset_descriptor'> belongs to class <type 'getset_descriptor'>
list of weak references to the object (if defined)

FORM._fixup <type 'instancemethod'> belongs to class <type 'instancemethod'>
Handling of provided components. Nothing to fixup yet. May be overridden by subclasses, eg for wrapping some components in another component or blocking them.

FORM._postprocessing <type 'instancemethod'> belongs to class <type 'instancemethod'>

FORM._setnode <type 'instancemethod'> belongs to class <type 'instancemethod'>

FORM._traverse <type 'instancemethod'> belongs to class <type 'instancemethod'>

FORM._validate <type 'instancemethod'> belongs to class <type 'instancemethod'>
nothing to validate yet. May be overridden by subclasses

FORM._wrap_components <type 'instancemethod'> belongs to class <type 'instancemethod'>
helper for _fixup. Checks if a component is in allowed_parents, otherwise wraps it in wrap_parent :param allowed_parents: (tuple) classes that the component should be an instance of :param wrap_parent: the class to wrap the component in, if needed :param wrap_lambda: lambda to use for wrapping, if needed

FORM._xml <type 'instancemethod'> belongs to class <type 'instancemethod'>
helper for xml generation. Returns separately: - the component attributes - the generated xml of the inner components Component attributes start with an underscore ('_') and do not have a False or None value. The underscore is removed. A value of True is replaced with the attribute name. :returns: tuple: (attributes, components)

FORM.accepts <type 'instancemethod'> belongs to class <type 'instancemethod'>
kwargs is not used but allows to specify the same interface for FROM and SQLFORM

FORM.append <type 'instancemethod'> belongs to class <type 'instancemethod'>
list style appending of components >>> a=DIV() >>> a.append(SPAN('x')) >>> print a <div><span>x</span></div>

FORM.element <type 'instancemethod'> belongs to class <type 'instancemethod'>
find the first component that matches the supplied attribute dictionary, or None if nothing could be found Also the components of the components are searched.

FORM.elements <type 'instancemethod'> belongs to class <type 'instancemethod'>
find all component that match the supplied attribute dictionary, or None if nothing could be found All components of the components are searched. >>> a = DIV(DIV(SPAN('x'),3,DIV(SPAN('y')))) >>> for c in a.elements('span',first_only=True): c[0]='z' >>> print a <div><div><span>z</span>3<div><span>y</span></div></div></div> >>> for c in a.elements('span'): c[0]='z' >>> print a <div><div><span>z</span>3<div><span>z</span></div></div></div> It also supports a syntax compatible with jQuery >>> a=TAG('<div><span><a id="1-1" u:v=$>hello</a></span><p class="this is a test">world</p></div>') >>> for e in a.elements('div a#1-1, p.is'): print e.flatten() hello world >>> for e in a.elements('#1-1'): print e.flatten() hello >>> a.elements('a[u:v=$]')[0].xml() '<a id="1-1" u:v="$">hello</a>' >>> a=FORM( INPUT(_type='text'), SELECT(range(1)), TEXTAREA() ) >>> for c in a.elements('input, select, textarea'): c['_disabled'] = 'disabled' >>> a.xml() '<form action="" enctype="multipart/form-data" method="post"><input disabled="disabled" type="text" /><select disabled="disabled"><option value="0">0</option></select><textarea cols="40" disabled="disabled" rows="10"></textarea></form>'

FORM.flatten <type 'instancemethod'> belongs to class <type 'instancemethod'>
return the text stored by the DIV object rendered by the render function the render function must take text, tagname, and attributes render=None is equivalent to render=lambda text, tag, attr: text >>> markdown = lambda text,tag=None,attributes={}: {None: re.sub('\s+',' ',text), 'h1':'#'+text+'\n\n', 'p':text+'\n'}.get(tag,text) >>> a=TAG('<h1>Header</h1><p>this is a test</p>') >>> a.flatten(markdown) '#Header\n\nthis is a test\n'

FORM.hidden_fields <type 'instancemethod'> belongs to class <type 'instancemethod'>

FORM.insert <type 'instancemethod'> belongs to class <type 'instancemethod'>
list style inserting of components >>> a=DIV() >>> a.insert(0,SPAN('x')) >>> print a <div><span>x</span></div>

FORM.process <type 'instancemethod'> belongs to class <type 'instancemethod'>
Perform the .validate() method but returns the form Usage in controllers: # directly on return def action(): #some code here return dict(form=FORM(...).process(...)) You can use it with FORM, SQLFORM or FORM based plugins Examples: #response.flash messages def action(): form = SQLFORM(db.table).process(message_onsuccess='Sucess!') retutn dict(form=form) # callback function # callback receives True or False as first arg, and a list of args. def my_callback(status, msg): response.flash = "Success! "+msg if status else "Errors occured" # after argument can be 'flash' to response.flash messages # or a function name to use as callback or None to do nothing. def action(): return dict(form=SQLFORM(db.table).process(onsuccess=my_callback)

FORM.regex_attr <type '_sre.SRE_Pattern'>
Compiled regular expression objects

FORM.regex_class <type '_sre.SRE_Pattern'>
Compiled regular expression objects

FORM.regex_id <type '_sre.SRE_Pattern'>
Compiled regular expression objects

FORM.regex_tag <type '_sre.SRE_Pattern'>
Compiled regular expression objects

FORM.sibling <type 'instancemethod'> belongs to class <type 'instancemethod'>
find the first sibling component that match the supplied argument list and attribute dictionary, or None if nothing could be found

FORM.siblings <type 'instancemethod'> belongs to class <type 'instancemethod'>
find all sibling components that match the supplied argument list and attribute dictionary, or None if nothing could be found

FORM.tag <type 'str'> belongs to class <type 'str'>
str(object) -> string Return a nice string representation of the object. If the argument is a string, the return value is the same object.

FORM.update <type 'instancemethod'> belongs to class <type 'instancemethod'>
dictionary like updating of the tag attributes

FORM.validate <type 'instancemethod'> belongs to class <type 'instancemethod'>
This function validates the form, you can use it instead of directly form.accepts. Usage: In controller def action(): form=FORM(INPUT(_name="test", requires=IS_NOT_EMPTY())) form.validate() #you can pass some args here - see below return dict(form=form) This can receive a bunch of arguments onsuccess = 'flash' - will show message_onsuccess in response.flash None - will do nothing can be a function (lambda form: pass) onfailure = 'flash' - will show message_onfailure in response.flash None - will do nothing can be a function (lambda form: pass) message_onsuccess message_onfailure next = where to redirect in case of success any other kwargs will be passed for form.accepts(...)

FORM.xml <type 'instancemethod'> belongs to class <type 'instancemethod'>