Hi
I'm trying to reuse a form to de-clutter my code. The idea was to create a
form class using a SQLFORM.factory with all the validation rules set up and
then use it for each view in the module.
class form ():
'''
USAGE:
thisform = form(([clients],defaultc),([portfolios],defaultp),....)
'''
import datetime
def __init__ (self, cset, pset, bset, l1set, l2set):
form = SQLFORM.factory (Field ("client", requires=IS_IN_SET (cset [0]),
default=cset [1]),
Field ("portfolio", requires=IS_IN_SET (pset [0]), default=pset [1]),
Field ("benchmark", requires=IS_IN_SET (bset [0]), default=bset [1]),
Field ("startdate", "datetime", default=datetime.datetime (2013, 1, 11, 0, 0,
0)),
Field ("enddate", "datetime", default=datetime.datetime (2013, 3, 30, 0, 0,
0)),
Field ("level1", requires=IS_IN_SET (l1set [0]), default=l1set [1]),
Field ("level2", requires=IS_IN_SET (l2set [0])), default=l2set [1])
def accepted (self, form):
startdate = enddate = client = portfolio = benchmark = level1 = level1 = []
if form.process().accepted:
client = form.vars.client
portfolio = form.vars.portfolio
benchmark = form.vars.benchmark
startdate = form.vars.startdate
enddate = form.vars.enddate
level1 = form.vars.level1
level2 = form.vars.level2
if startdate: startdate = datetime.datetime.strftime (startdate, "%Y-%m-%d
%H:%M:%S")
if enddate: enddate = datetime.datetime.strftime (enddate, "%Y-%m-%d %H:%M:%S")
return dict (client=client, portfolio=portfolio, benchmark=benchmark,
startdate=startdate,
enddate=enddate, level1=level1, level2=level2)
that failed completely with an `AttributeError: form has no attribute
process` so I tried defining a method instead with the code below:
def form():
form = SQLFORM.factory(Field('Client'),
Field('Portfolio'))
return form
def sandbox():
f2= []
f1 = form().process()
if f1.process().accepted:
f2 = "rhubarb"
return dict(f2=f2)
and the view `{{=f2}}` returns `[]` without ever displaying a form
Would anyone have any thoughts on how to acomplish this? Thanks..
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.