2013-06-26 3 views
2

У меня возникла проблема (возможно, из-за моей нехватки знаний по этой теме) с использованием пули в моем urls.py.Проблемы с получением пули для правильной работы в urls.py

Urls.py 
url(r'^admin/', include(admin.site.urls)), 
url(r'^search_form/$', search_form), 
url(r'^search/$', search), 
url(r'^search_results/$', search_results), 
#url(r'^search/search_results/acetic-acid/$', item), 
url(r'^(?P<slug>[-\w\d]+),(?P<id>\d+)/$', item), 

здесь ссылка HTML HREF = "search_results/{{chemical.S_field}} /"> {{chemical.Barcode}}, где chemical.S_field пробкового поля, основанный прочь slugified версию название предмета.

Я пытаюсь создать одну страницу, url и view, которые смогут принять пользователя к шаблону, который изменится в зависимости от того, на какую ссылку они нажимали.

Например, если у вас есть волосатые собаки, волосатые кошки, пушистые птицы. Если пользователь нажимает на волосатых кошек, слизью будут волосатые кошки, и пользователь будет доставлен на страницу (search/search_results/hairy-cats /, которая будет иметь различную информацию о волосатых кошках, которые будут отображаться из базы данных.

Я чувствую, что это возможно, но каждый раз, когда я пытаюсь использовать слизню (возможно, я делаю это неправильно), она отображает^(? P [- \ w \ d] +), (? P \ d +)/$ в отличие от информации, хранящейся в пули.

Также есть место, где есть учебник или хорошая информация о django, подобном этому? Я прошел через учебники django на сайте, а также учебники django в Окончательном руководстве по веб-разработке с Django.

Спасибо,

EDIT я, возможно, не был ясен, прежде чем следовало бы выбрать лучший пример. страница, которую я хотел бы отобразить, будет размещена в search/search_results/slug Если slug будет slugified версией названия элемента. Вот что я получаю сейчас с добавлением нового URL

Using the URLconf defined in Inventory.urls, Django tried these URL patterns, in this order: 

^admin/doc/ 
^admin/ 
^search_form/$ 
^search/$ 
^search_results/$ 
^(?P<slug>[-\w\d]+),(?P<id>\d+)/$ 
^(?P<slug>[-\w]+)/(?P<id>\d+)/$ 

The current URL, search/search_results/acetic-acid/, didn't match any of these. 
+2

Я не могу видеть любой шаблон URL-адрес для вашего желаемого результата (поиск/search_results/волосатые кошки /). Посмотрите здесь, как работают шаблоны url: https://docs.djangoproject.com/en/dev/topics/http/urls/ – Jingo

+0

У меня есть. Я использовал их только как примеры. Да, я в настоящее время не продаю кошек, собак или птиц: p – user2482595

ответ

6

Этот шаблон URL недействителен. Вы можете прочитать об этом в Named Groups

url(r'^(?P<slug>[-\w\d]+),(?P<id>\d+)/$', item) 

Попробуйте

url(r'^(?P<slug>[-\w\d]+)/$', item) 

Поскольку вы пытаетесь соответствовать только слизни.

Если вы хотите, чтобы иметь возможность соответствовать либо слизней, или идентификаторы, вы можете иметь 2 отдельные цели и каждый из них является Named URL Pattern

url(r'^(?P<id>\d+)/$', item, name='by-id') 
url(r'^(?P<slug>[-\w\d]+)/$', item, name='by-slug') 
+1

Часть проблемы заключалась в том, что у меня был url (r '^ (?P [- \ w \ d] +)/$ ', item), и мне нужен был url (r'^search/(? P [- \ w \ d] +)/$ ', item) – user2482595

+0

Oh .. Я не видел редактирование вопроса. Я рад, что вы это поняли. – karthikr

0

попробовать это:

url(r'^search/search_results/(?P<slug>[-\w]+)/$', item), 

вы будете иметь URL вроде этого: поиск/search_results/уксусная кислота /, которая будет вызовите функцию.

+0

Я не был таким ясным и отредактировал свое оригинальное сообщение. Извините, если это вводит в заблуждение. – user2482595