2016-01-12 2 views
0

Я пытаюсь добавить пару аргументов в свой url, если у меня есть только один аргумент, все работает отлично. Однако, если я пытаюсь использовать 2, он преобразует их в dict и выдает ошибку. Ниже приведены две вещи, которые я пробовал без успеха, любая помощь была бы потрясающей. Я бегу Django 1.8.4Несколько аргументов в шаблоне шаблона URL-адреса

  {% autoescape off %} 
      <a href={% url "products.views.display_product_list" page=previous keyword=current_keyword %}> 
       Previous</a> 
      Current Page 
      <a href={% url "products.views.display_product_list" page=next keyword=current_keyword %}> 
       Next</a> 
      {% endautoescape %} 

      <a href={% url "products.views.display_product_list" page=previous,keyword=current_keyword %}> 
       Previous</a> 
      Current Page 
      <a href={% url "products.views.display_product_list" page=next,keyword=current_keyword %}> 
       Next</a> 

Первый дает ошибку NoReverseMatch в/результаты/стр-0/

Хотя вторая является TemplateSyntaxError в/результаты/стр-0/Не удалось разобрать остаток

Мой URL выглядит следующим образом:

r'^(?:page-(?P<page>[0-9]*)/)(?:keyword-(?P<keyword>[0-9A-Z]*)/)?$' 

Webpage Traceback:

Reverse for 'products.views.display_product_list' with arguments '()' and keyword arguments '{'page': 0, 'keyword': 'dress'}' not found. 1 pattern(s) tried: ['results/(?:page-(?P<page>[0-9]*)/)(?:keyword-(?P<keyword>[0-9A-Z]*)/)?$'] 

Request Method: GET 
Request URL: http://127.0.0.1:8888/results/page-0/?csrfmiddlewaretoken=CxlgETtyGPQpKa9pG276SZ0zzPQky9JA&keywords=dress 
Django Version: 1.8.4 
Exception Type: NoReverseMatch 
Exception Value:  
Reverse for 'products.views.display_product_list' with arguments '()' and keyword arguments '{'page': 0, 'keyword': 'dress'}' not found. 1 pattern(s) tried: ['results/(?:page-(?P<page>[0-9]*)/)(?:keyword-(?P<keyword>[0-9A-Z]*)/)?$'] 
Exception Location: C:\Users\William\AppData\Roaming\Python\Python34\site-packages\django\core\urlresolvers.py in _reverse_with_prefix, line 496 
+0

Первый - правильный синтаксис. Можете ли вы показать полную трассировку? – knbk

+0

@knbk Просто добавлена ​​трассировка на веб-страницу, ничего на консоли –

ответ

0
(?P<keyword>[0-9A-Z]*) 

Эта часть вашей регулярное выражение соответствует только цифры и заглавные буквы, но вы передаете строчными слово в {% url %} тега. Вам необходимо соответствующим образом изменить шаблон:

(?P<keyword>[0-9a-zA-Z]*) 
+0

WOW, чувствуя себя медленным прямо сейчас. Я поймал и исправил верхний сценарий, но забыл о нижнем. Благодаря! –

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