Note: this only does kargs, not args. You will have to change it if you rely on args.
On Jul 25, 4:31 pm, "The Devil's Programmer" <[email protected]> wrote: > After talking with Ben in IRC, we have come to the conclusion that > perhaps this could be considered a bug. Ben reckons he's going to make > a patch, but until then here is a little hack to make it work > > def url_for_fix(*args, **kargs): > for key, val in kargs.items(): > if isinstance(val, int): > kargs[key] = str(val) > return url_for(*args, **kargs) > > just use this in place of url_for > > ie.. import bla.url_for_fix as url_for > > On Jul 25, 3:05 pm, Ben Bangert <[email protected]> wrote: > > > On Jul 24, 2009, at 7:55 PM, The Devil's Programmer wrote: > > > > #in my routes config > > > > map.connect('/test', controller='test', action='test') > > > map.connect('/test', controller='test', action='test', page=1) > > > map.connect('/test/page{page:\d+}', controller='test', action='test') > > > > #in my controller > > > > print url_for(controller='test', action='test', page=1) > > > > then i look at my debug and see /test/page1 > > > > when it should be /test > > > > if i put quotes around the 1s to make them strings it works as i would > > > expect it to. so why is it incapable of comparing two integers? > > > Well, you have some fairly ambiguous behavior by having two different > > routes on *exactly* the same URL only with different defaults. And the > > route choosing method in general is somewhat ambiguous on how it > > chooses, which is why you should *always* use named routes when you > > want to be 100% sure of which one is going to be used to generate a URL. > > > I'm not 100% sure why adding the quotes makes it give you the URL you > > expect, as I mentioned, the whole scheme to try and figure it out is > > somewhat ambiguous. I'd welcome a patch that makes it do what you > > might expect (though I expect that'd make a fair amount of other use > > cases then work differently), but really, in the end, you should be > > using named routes. > > > Cheers, > > Ben --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
