Le 11/10/2010 15:35, Diez B. Roggisch a écrit :
On Monday, October 11, 2010 15:25:52 Remi Jolin wrote:
   Hello,

I've just found a QR-Code reader that adds a variable to the encoded URL
before passing it to the navigator and this variable is
"mobiletag-title=http%3A%2F%2Fwww...etc....".
The problem is that TG tries to decode that variable through
formencode/variabledecode/variable_decode which is not pleased by the "-"
...
What can I do to solve this issue ? Any suggestion ?
(changing the QR-Code reader is not an option as the TG application is
supposed to be used by anybody)
I think your best option is to install a filter that alters the request so that
the attribute name "mobiletag-title" gets re-mapped to e.g. mobiletag_title.


Yes, but the issue is that I cannot predict what parameter name a new tool can invent... :-(

I found another way to get it right :
patch turbogears.filters.base.py to add a exeption handler to the filter.

class NestedVariablesFilter(object):
"""Request filter that turns request params with names in special dotted
    notation into nested dictionaries via FormEncode's NestedVariables
    validator.

    """
    def before_main(self):
        if hasattr(request, 'params'):
            try:
request.params = NestedVariables.to_python(request.params or {})
            except ValueError, e:
                log.warning(u'ValueError: %s' % e)

So : if it can't decode nested variables, it lets the parameter as-is...

What do you think about that ?

--
You received this message because you are subscribed to the Google Groups 
"TurboGears" 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/turbogears?hl=en.

Reply via email to