我正在尝试为我的网址添加一些参数,如果我只有一个参数,那么一切都很好。但是,如果我尝试使用2,它会将它们转换为dict并抛出错误。以下是我尝试过的一些没有成功的事情,任何帮助都会很棒。我正在运行Django 1.8.4
{% 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>
第一个在/ results / page-0 /
给出NoReverseMatch的错误第二个是/ results / page-0 /的TemplateSyntaxError 无法解析剩余部分
我的网址如下:
r'^(?:page-(?P<page>[0-9]*)/)(?:keyword-(?P<keyword>[0-9A-Z]*)/)?$'
网页追溯:
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 :(得分:0)
(?P<keyword>[0-9A-Z]*)
正则表达式的这一部分仅匹配数字和大写字母,但您将小写字词传递给{% url %}
标记。您需要相应地更改模式:
(?P<keyword>[0-9a-zA-Z]*)