regex - django occasionally throwing a NoReverseMatch -


i'm getting occasional error in django template rendering; sometimes noreversematch on following url:

    url(r'^student-agreement/(?p<code>[\w:-]+)$',         studentagreementview.as_view(),         name='student-agreement'), 

the code argument created calling signing.dumps() on object id, creates string such 'mjexmg:1z0h6s:1h19sjho2ccalaugkiylvyylszi' - far can tell, should match regex provided. however, trying test like:

for in range(20)     print reverse('student-agreement', kwargs={'code':signing.dumps(i)}) 

will throw noreversematch pretty quickly.

here sample traceback:

traceback (most recent call last):   file "/home/vagrant/.virtualenvs/sis_esv_repo/local/lib/python2.7/site-packages/ipython/core/interactiveshell.py", line 2883, in run_code     exec(code_obj, self.user_global_ns, self.user_ns)   file "<ipython-input-58-f02835044aa6>", line 2, in <module>     print reverse('student-agreement', kwargs={'code':signing.dumps(i)})   file "/home/vagrant/.virtualenvs/sis_esv_repo/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 551, in reverse     return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))   file "/home/vagrant/.virtualenvs/sis_esv_repo/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 468, in _reverse_with_prefix     (lookup_view_s, args, kwargs, len(patterns), patterns)) noreversematch: reverse 'student-agreement' arguments '()' , keyword arguments '{'code': 'mg:1z0h9l:lthc7maaten7jbhrbiut-zbzt18'}' not found. 1 pattern(s) tried: ['school/student-agreement/(?p<code>[\\w:-_]+)$'] 

turns out regex using while running tests different 1 posted in question - hadn't reloaded instance, , using old regex had been using: (?p<code>[\w:-_]+). correct regex (?p<code>[\w:-]+) - :-_ makes regex match range : _ doesn't include hyphen itself. correct regex has hyphen @ end of set, treated hyphen character. since \w includes underscore, underscore not necessary, (?p<code>[\w:_-]+) correct regex.

thanks @fasouto pointing me in right direction!


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -