2015-10-06 2 views
1

Я столкнулся с каким-то странным поведением в Django 1.8.3. (Примечание: я начал проект с 1.7.4) Я хочу повторно использовать представление, если он получает запрос на получение, поэтому я определил следующие URL-адреса в urls.py, расположенном в том же месте, где находится мой settings.py.Параметр Django не в запросе, но в поле зрения

(Примечание: это короткая версия)

urlpatterns = patterns('', 
    url(r'^licenses/$', views.licenses), 
    url(r'^licenses/(?P<pool>.*)/$', views.licenses, name='pool'), 
) 

в моем views.py я определен следующий вид:

def licenses(request, pool=None): 
    print request, request.GET 
    print pool 

шаблон (base.html), призывающее мнение:

<li><a href="/licenses/">Licenses</a> 
    <ul> 
     {% for pool in LICENSE_MENU %} 
      <li class="dir"><a href="/licenses/{{ pool }}">{{ pool }}</a></li> 
     {% endfor %} 
    </ul> 
</li> 

LICENSE_MENU - это список лицензий, переданных context_processor на base.html

Все работает почти нормально. Если я нажму лицензию, я перенаправляюсь на лицензии(), но лицензия, которую я нажал, не отображается в запросе. Выход моей оболочки, когда я бегу TestServer и нажмите на ссылку следующая:

[06/Oct/2015 12:16:03]"GET/HTTP/1.1" 200 129165 
<WSGIRequest: GET '/licenses/'> <QueryDict: {}> 
[06/Oct/2015 12:16:06]"GET /licenses/ HTTP/1.1" 200 128597 
<WSGIRequest: GET '/licenses/ansys/'> <QueryDict: {}> 
ansys 
[06/Oct/2015 12:16:11]"GET /licenses/ansys/ HTTP/1.1" 200 128851 

Почему мой вид печати бассейн, хотя это не в запросе querydict? Что мне не хватает? Спасибо заранее.

ответ

4

Пул не является частью параметров получения, он извлекается из URL-адреса и передается в виде переменной pool. Именно поэтому на ваш взгляд работает print pool.

Если ваш URL был

/licenses/?pool=ansys 

тогда URL /licences/ будет соответствовать регулярному выражению r'^licenses/$' в ваших шаблонов URL, и pool бы в параметрах ГЭТ.

2

Собственно, параметры URL, которые находятся за? будут извлечены и помещены в GET. Вы можете получить пул из аргументов функции view.

Смежные вопросы