所以我知道我可以像这样传递一个参数:{%url'... path ...'argument%},但是我想传递2个像{%url'... path ...'argument1 arguments2 %}这是我的确切代码:search.html:
{% for id, title, thumbnail in videos%}
<a href="https://www.youtube.com/watch?v={{id}}"><img src="{{thumbnail}}">{{title}}</a><p style="display:inline;"> | </p><a href="{%url 'select' id title%}">Add to playlist</a>
<br>
{%endfor%}
urls.py:
path('select/<id>/<title>', views.select, name='select'),
我收到以下错误:找不到带有参数'('omPiA5AsGWw','PRESLAVA-POSLEDEN ADRES /Преслава-Последенадрес,2007')的'select'反向。尝试了1个模式:['select /(?P [^ /] +)/(?P [^ /] +)$']
您的标题包含斜线。您应将path
指定为路径转换器:
path('select/<id>/<path:title>', views.select, name='select'),
话虽这么说,但我不确定将此类标题编码为url是一个好主意,它将使丑陋的URL中包含许多百分比编码的字符。您可能需要查看slugs instead [Django-doc]。
我不确定为什么要传递两个路径,但是您可以考虑在模板中使用条件标签,以避免使用大量的硬编码模板