I believe the problem is that profileSet.latest is created bu
SQLFORM.accepts and not FORM.accepts. Consider replacing this

settingform = FORM('First Name:', INPUT(_name='firstname',
requires=IS_NOT_EMPTY(), value= "%s"%default_firstname),
                       'Last Name:', INPUT(_name='lastname',
requires=IS_NOT_EMPTY(), value= "%s"%default_lastname),
                       INPUT(_type='submit') )
.....
 if FORM.accepts(settingform, request.vars, session, keepvalues=True):
       # Some code here#

with

from gluon.sqlhtml import form_factory

settingform = form_factory(SQLField('firstname',label='First Name',
requires=IS_NOT_EMPTY(),default=default_firstname),
                       SQLField('lastname',label='Last Name',
requires=IS_NOT_EMPTY(), default=default_lastname))
 if form.accepts(request.vars, session, keepvalues=True,
formname='settingform'):


On May 24, 9:34 pm, Yannick <ytchatch...@gmail.com> wrote:
> Hello Mate,
>
> I have a page called "index.html" with several form inside... here is
> a sample of my code:
> ##################
> #Controller:
> ##################
>
> @auth.requires_login()
> def pwdSetting():  return dict(chg_pwd = auth.change_password())
>
> @auth.requires_login()
> def profileSetting():
>  # Some code here where I defined: default_firstname and
> default_lastname
> settingform = FORM('First Name:', INPUT(_name='firstname',
> requires=IS_NOT_EMPTY(), value= "%s"%default_firstname),
>                        'Last Name:', INPUT(_name='lastname',
> requires=IS_NOT_EMPTY(), value= "%s"%default_lastname),
>                        INPUT(_type='submit') )
> .....
>  if FORM.accepts(settingform, request.vars, session, keepvalues=True):
>        # Some code here#
> .....
> return dict(formsetting=settingform)
>
> @auth.requires_login()
> def index():
>     profileSet = profileSetting()
>     pwdSetting = pwdSetting()
>     return dict( profileSet=profileSet, pwdSet=pwdSetting)
>
> ###########
> # index.html
> ###########
> Profile Setting:
> <form action="" enctype="multipart/form-data" method="post">
>      First Name:
>                <input name="firstname" type="text"
> value="{{=profileSet.latest.firstname}}"/>
>     Last Name:
>                <input name="lastname" type="text"
> value="{{=profileSet.latest.lastname}}"/>
>                 <input type="submit" value="Submit" />
>     ....
>     ....
>      {{=profileSet.hidden_fields()}}
> </form>
>
> Password Setting:
> <h1> Password Setting </h1>
>
> <form action="" enctype="multipart/form-data" method="post">
>    Old Password:
>         <input name="old_password" type="password" value="" />
>          New Password:
>         <input name="new_password" type="password" value="" />
>          Re-Type Password:
>         <input name="new_password2" type="password" value="" />
>         <input type="submit" value="Submit" />
>     {{=pwdSet.hidden_fields()}}
> </form>
>
> ############################################################
>
> When I do this i have an error message saying :
>                 "AttributeError: 'str' object has no attribute
> 'latest'"
>
> Does any one has an idea how to solve this problem... The way i design
> it i want to have each controller for each form... I can make this
> work by have a BIG controller 'Index' that define and return several
> form BUT this solution is difficult to maintain and may trigger a bad
> performance....
>
> Please let me know if you have any idea... Thank You.
>
> Yannick P.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to