On Apr 4, 2010, at 4:37 PM, DenesL wrote: > It should be noted that there was some work done towards enabling an > alternate setting that would allow the developer access to the > unchanged (raw) args but it has not been finished yet. > > This would allow any character set in args which I believe mainly > concerns non-English speaking developers/users. > > If any of you feel, as I do, that this is important please voice your > concern.
The raw args feature is available in the current release. Specify it for a particular app in routes.py, and request.raw_args will have the unprocessed args. %20 will be converted to space. URL rewriting is still somewhat broken, especially when a ? is involved. I've got a plan to address that too, but I haven't had a lot of time to put in on it. > > Denes. > > On Apr 4, 12:01 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: >> The problem is that web2py does not like spaces '%20' in url and >> replaces them with underscore. >> >> On Apr 4, 7:20 am, annet <annet.verm...@gmail.com> wrote: >> >>> After upgrading to web2py version 1.76.5 one of the functions I >>> defined no longer works. >> >>> I defined a table newsmonth: >> >>> db.define_table('newsmonth', >> >>> db.Field('number',type='integer',length=2,default='',notnull=True), >>> db.Field('month',length=14,default='',notnull=True,unique=True), >>> db.Field('publish',type='boolean'), >>> migrate=False) >> >>> ... which I use to display archived news items per month. Number is >>> the number of the month e.g April 4. Month is a string, for April it >>> reads like: April 2010. Publish defaults to false and is set to true >>> on the 1st of the next month. >> >>> In the view I have a list with links: >> >>> March 2010 >>> february 2010 >>> january 2010 >> >>> When the visitor clicks March 2010, the news table is queried: >> >>> def archive(): >> >>> months=db(db.newsmonth.publish==True).select(db.newsmonth.ALL,orderby=~db.newsmonth.id) >>> news=[] >>> month=[] >>> if request.args: >>> news=db(db.news.publishing_date.month()==request.args[0])\ >>> .select(db.news.ALL,orderby=~db.news.publishing_date) >>> month=request.args[1] >>> if not news: >>> response.flash='Select an archived month' >>> else: >>> response.flash='Select an archived month' >>> return dict(months=months,news=news,month=month) >> >>> month is set to request.args[1], i.e March 2010, and returned to the >>> view: >> >>> <div id="twoColLayout"> >>> <div id="primarycontent"> >>> .... >>> <div id="month"> >>> <h3>Nieuws {{=month.replace('_',' ')}}</h3> >>> <table> >>> <thead> >>> <tr> >>> <td></td> >>> </tr> >>> </thead> >>> <tbody> >>> {{for item in news:}} >>> <tr> >>> <td> >> >>> <h5>{{=db.news.publishing_date.formatter(item.publishing_date)}}</h5> >>> </td> >>> <td> >> >>> {{=A(item.title,_onmouseover="this.style.cursor='pointer';",\ >> >>> _onclick="javascript:newsdetails('%s')"%URL(r=request,f='details',args=[item.id]))}} >>> </td> >>> </tr> >>> {{pass}} >>> </tbody> >>> </table> >>> </div> <!-- month --> >>> </div> <!-- primarycontent --> >>> <div id="sidecontent"> >>> <div class="sidebox"> >>> <h3>Archived months:</h3> >>> <table> >>> <tbody> >>> {{for month in months:}} >>> <tr> >>> <td> >> >>> {{=A(month.month,_href=URL(r=request,args=[month.number,month.month]))}} >>> </td> >>> </tr> >>> {{pass}} >>> </tbody> >>> </table> >>> </div> <!-- sidebox --> >>> </div> <!-- sidecontent --> >>> </div> <!-- twoColLayout --> >> >>> When I expose the archive function, the view displays well. The URL >>> reads like:http://127.0.0.1:8000/init/news/archive >> >>> However, when I click one of the archived months links I get an >>> invalid request error. >> >>> The link in the view reads like: <a href="init/news/archive/3/March >>> %202010">March 2010</a> >> >>> ... the URL in the browser reads >>> like:http://127.0.0.1:8000/init/news/archive/3/March%202010 >> >>> Since the function works without args, I suppose the error has >>> something to do with the args, the porblem is I can't figure out what. >> >>> Kind regards, >> >>> Annet. > > -- > You received this message because you are subscribed to the Google Groups > "web2py-users" group. > To post to this group, send email to web...@googlegroups.com. > To unsubscribe from this group, send email to > web2py+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/web2py?hl=en. > -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.