On Jun 22, 2012, at 11:57 AM, Alec Taylor wrote: > In my models/db.py I have this line: > > auth.settings.login_next = URL(f='profile')
You might want to explicitly set the controller on that line, unless you have only one controller. As a practical matter it may not be an issue, since it's quite possible that the current controller is 'default' any time you care about login_next, but in general you could have any controller when you come through your model, and it does no harm to be explicit. (I don't think that's your problem, though.) You wrote: Yet the URL continues to present at: http://brian.com/default/profile#_=_ Where's the '#_=_' coming from? That seems odd. And URL() doesn't generate the scheme and domain unless you explicitly tell it to. Are you looking at the page source? > > The profile function is defined in controllers/default.py > > On Sat, Jun 23, 2012 at 4:46 AM, Jonathan Lundell <[email protected]> wrote: >> On Jun 22, 2012, at 11:00 AM, Alec Taylor wrote: >>> >>> (just tried that, didn't work) - Looking forward to when you get the >>> chance to pass it through unit-tests :) >> >> OK, I tried it and it seemed to work OK. Here's my test case: >> >> router = dict( >> BASE = dict( >> default_application = 'init', >> applications = 'INIT', >> ), >> init = dict( >> controllers = ['default', 'ctr'], >> functions = ['index','user','register','basicRegister', >> 'download','call','data','error'] >> ), >> ) >> >> The applications= and controllers= lines are in there because of the unit >> test environment; you don't need them as a rule. >> >> The test case: >> >> self.assertEqual(str(URL(a='init', c='default', f='register')), >> "/register") >> >> How are you generating your URL? You have to use URL() to do it; that's >> where the router gets invoked. >> >> -- --

