Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regex django url

Hello I have a url and I want to match the uuid the url looks like this:

/mobile/mobile-thing/68f8ffbb-b715-46fb-90f8-b474d9c57134/

urlpatterns = patterns("mobile.views",
    url(r'^$', 'something_cool', name='cool'),
    url(r'^mobile-thing/(?P<uuid>[.*/])$', 'mobile_thing', name='mobile-thinger'),
)

but this doesn't work at all. My corresponding view is not being called. I tested so many variations...ahw

but url(r'^mobile-thing/', 'mobile_thing', name='mobile-thinger') works like a charm but no group...

like image 275
Jurudocs Avatar asked Jan 02 '14 17:01

Jurudocs


1 Answers

The [.*/] expression only matches one character, which can be ., * or /. You need to write instead (this is just one of many options):

urlpatterns = patterns("mobile.views",
    url(r'^$', 'something_cool', name='cool'),
    url(r'^mobile-thing/(?P<uuid>[^/]+)/$', 'mobile_thing', name='mobile-thinger'),
)

Here, [^/] represents any character but /, and the + right after matches this class of character one or more times. You do not want the final / to be in the uuid var, so put it outside the parentheses.

like image 107
Nicolas Cortot Avatar answered Oct 30 '22 04:10

Nicolas Cortot