Sunday, February 26, 2012

Re: question about "\d" in url pattern

On 27 févr. 2012, at 07:23, Zheng Li <dllizheng@gmail.com> wrote:
> url(r'^friend_page/cheer/confirm/(?P<fid>\w+)/(?P<key>\d+)/(?P<point>\d+)/$', 'cheer_confirm', name = 'friend_page'),
>
> def cheer_confirm(request, fid, key, point):
> data = {
> 'point' : 10 + point,
> }
> ...
>
> i got
> TypeError: unsupported operand type(s) for +: 'int' and 'unicode'
>
> i did "print type(point)", and got type(unicode)
> apparently, point is not int.
>
> i thought "\d+" in url promises i can get an int point in cheer_confirm, and am i wrong?

\d+ ensures you will only get naturals, but django will not perform any conversion automatically. Especially not here as it would require introspecting the regular expression to see which pattern was matched and whether it is convertible.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment