Vor
Vor

Reputation: 35099

regex in Django urls.py

Help me please to fix urls.py People suggested this way, but it does't work for me.....

#urls.py
  (r'^/user/(?P<username>)/subject/([\w|\W]+)/$', subject),

#template
 {% for subject in subjects %}
    <li><a href="/user/{{ user.username }}/subject/{{ subject.name }}">{{ subject.name }}</a> {{ del_form.delete }}</li>
 {% endfor %}

#error
PAGE NOT FOUND
Request URL:    http://127.0.0.1:8000/user/root/subject/Math%20140
....
....
^/user/(?P<username>)/subject/([\w|\W]+)/$

Upvotes: 1

Views: 8316

Answers (1)

spookylukey
spookylukey

Reputation: 6576

You have an error in your regular expression. You should use a regex builder if you are new to this:

http://ryanswanson.com/regexp/ (Perl)

http://www.pyregex.com/ (Python)

I think you want something like this:

^user/(?P<username>.+)/subject/([\w|\W]+)/

But you might want to change the '.+' to something more restrictive:

^user/(?P<username>[^/]+)/subject/([\w|\W]+)/

Note also that you probably don't want that leading slash - due to the way Django feeds the initial URL to the URL dispatcher.

Upvotes: 7

Related Questions