Django URL Regex для строки запроса - PullRequest
2 голосов
/ 16 мая 2011

Следуя от urls.py:

url(r'^\?view=(?P<vtype>instructor|course|room)$', 'index', name='index'),

я могу проверить, работает ли он, просто вызвав django.core.urlresolvers.reverse в оболочке:

In [6]: reverse('index', args=["course"])
Out[6]: '/?view=course'

, но когда япопробуйте получить доступ к http://localhost:8000/?view=course я получу 404.

Что я здесь не так делаю?

Спасибо

Редактировать:

url('^search/\?user=(?P<userid>\d+)&type=topic', 'search_forum', name='my_topics'),

Это из предыдущего проекта, который работает, как ожидалось.Вздох ...

Ответы [ 2 ]

5 голосов
/ 16 мая 2011

Строка запроса не является частью URL.Если вы хотите сделать это таким образом, вы должны использовать url(r'^$', 'index', name='index'), а затем искать его в словаре request.GET в представлении.

Однако обычный способ - использовать url(r'(?P<vtype>instructor|course|room)/$', 'index', name='index').Подход строки запроса - это обычный обходной путь для невозможности направить запросы в соответствии с частью URL, не являющейся строкой запроса.Джанго не имеет этого ограничения.

0 голосов
/ 16 мая 2011

Ваше регулярное выражение совпадает с начала (^), но я не вижу ничего, что соответствовало бы начальному '/'. Может ли это быть так?

...