Of course, but that's equally true of the "List" class that provides the request.args functionality. That's just Python code. I could write it myself. But web2py provides it for convenience. I'm just saying it would be nice to have similar convenience for request.vars.
You're right that dict.get handles the default value, but the functionality available for args includes substantially more than that. It's only about 20 lines of code, but it does at least three different things: 1. use the default value if provided 2. convert the value using the "cast" parameter if provided 3. redirect to an error page if given in the "otherwise" parameter Plain dicts don't do all those things, nor do Storage objects. For now, what I did is just write a BetterStorage class that inherits from Storage and includes the __call__ method from List (with a couple modifications at the beginning because it's delegating to dict keys rather than list indices). Would there be interest in making this change to web2py? On Monday, November 14, 2016 at 9:50:19 AM UTC-8, Anthony wrote: > > On Monday, November 14, 2016 at 1:53:33 AM UTC-5, Brendan Barnwell wrote: >> >> The request.args object has a handy callable interface that allows >> specification of default value, type to coerce to, etc. As far as I can >> tell, the request.vars object has no such interface. Is this right? Why >> is this? What can I do if I want to access various vars that may or may >> not be present, with the same sort of fallback options as are available >> with args? >> > > Keep in mind, your app is written in Python -- you are not limited to the > web2py API -- just use Python to achieve what you want. request.vars is a > dict-like object, so for example, you can do: > > myvar = request.vars.get('myvar', 'my_default_value') > > Anthony > -- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.