What happens if you remove vars=request.vars from LOAD()?
On Jul 9, 11:52 am, LightOfMooN <[email protected]> wrote: > ajax=True doesn't work too > > I make it clear: > layout.html > {{=LOAD('default','login2',vars=request.vars, ajax=True)}} > > default/login.html: > <div id="log_menu"> > {{=BEAUTIFY(request.vars)}} > {{if not auth.user:}} > {{=form}} > {{else:}} > <a href="{{=URL('default','user',args='logout')}}">logout</a> > {{pass}} > </div> > > default.py: > def login2(): > form=auth.login() > return dict(form=form) > > And it doesn't work with LOAD() (doesn't matter ajax=False/True, > ajax_trap=False/True, I tried all) > Even if I click on submit, there are no vars from form.hidden_fields() > displayed. > > On 9 июл, 20:47, Anthony <[email protected]> wrote: > > > > > Not sure what the problem is. Is your login view login.html or login.load? > > If the latter, your LOAD call should include 'login.load' (otherwise it will > > default to 'load.html'). > > > You might also consider using the form.custom elements to build your form > > rather than doing everything manually, as described > > here:http://web2py.com/book/default/chapter/07#Custom-forms. For example, > > form.custom.end will do the same thing as form.hidden_fields(), but will > > also add the closing </form> tag. > > > Anthony > > > On Saturday, July 9, 2011 9:52:17 AM UTC-4, LightOfMooN wrote: > > > So, I changed LOAD to {{=LOAD('default','login', vars=request.vars, > > > ajax_trap=True, ajax=False)[0][0]}} > > > but it stays not to log in. > > > I add {{=BEAUTIFY(request.vars)}} in the default/login.html > > > When I click on submit, I see, that vars contains just password, > > > remember and username. > > > There are no vars from {{=form.hidden_fields()}} > > > > On 9 июл, 19:29, Anthony <[email protected]> wrote: > > > > Try adding ajax_trap=True to your LOAD call. Without that, your form > > > > will > > > be > > > > posted to the action of the parent page, which is not prepared to > > > > process > > > > > the login submission. ajax_trap=True will post the form submission back > > > to > > > > the login() action. Or you can just use ajax=True for the login > > > component. > > > > > Anthony > > > > > On Saturday, July 9, 2011 9:06:17 AM UTC-4, LightOfMooN wrote: > > > > > Hello. > > > > > I'm trying to make a login viewlet. > > > > > > So, I have function in controller "default": > > > > > def login(): > > > > > return dict(form=auth.login()) > > > > > > And view: > > > > > <div id="log_menu"> > > > > > {{if not auth.user:}} > > > > > <form action="" enctype="multipart/form-data" method="POST"> > > > > > <div> > > > > > Login<input name="username" type="text" value="" /> > > > > > </div> > > > > > <div> > > > > > Password<input name="password" type="password" value="" /> > > > > > </div> > > > > > <div> > > > > > <input name="remember" type="checkbox" value="on" > > > > > checked="checked">remember me > > > > > </div> > > > > > {{=form.hidden_fields()}} > > > > > <div> > > > > > <input class="formbutton" type="submit" value="login"> > > > > > </div> > > > > > </form> > > > > > {{else:}} > > > > > <a href="{{=URL('default','user',args='logout')}}">logout</a> > > > > > {{pass}} > > > > > </div> > > > > > > By url /default/login it works fine, but when I include it in > > > > > layout.html with > > > > > {{=LOAD('default','login', vars=request.vars, ajax=False)[0][0]}} > > > > > it doesn't log user in. > > > > > > How to make it works? thx

