Skip to content
Advertisement

match an alternative url – regular expression django urls

I want a Django URL with just 2 alternatives /module/in/ or /module/out/

I’m using

url(r'^(?P<status>w+[in|out])/$', 
'by_status', 
name='module_by-status'),

But it matches other patterns like /module/i/, /module/n/ and /module/ou/.

Any hint is appreciated :)

Advertisement

Answer

Try r'^(?P<status>in|out)/$'

You need to remove w+, which matches one or more alphanumeric characters or underscores. The regular expression suggested in bstpierre’s answer, '^(?P<status>w+(in|out))/$' will match helloin, good_byeout and so on.

Note that if you use the vertical bar (pipe) character | in your url patterns, Django cannot reverse the regular expression. If you need to use the url tag in your templates, you would need to write two url patterns, one for in and one for out.

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement