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.

Reply via email to