首页 > 解决方案 > 如何将 2 个参数从模板传递到 django 中的视图?

问题描述

所以我知道我可以像这样传递一个参数: {%url '...path...' argument%} 但我想传递 2 个参数,例如 {%url '...path...' argument1 argument2%}这是我的确切代码: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%}

网址.py:

path('select/<id>/<title>', views.select, name='select'),

我收到以下错误:未找到带有参数 '('omPiA5AsGWw', 'PRESLAVA - POSLEDEN ADRES / Преслава - Последен адрес, 2007')' 的“选择”的反向。尝试了 1 种模式:['select/(?P[^/]+)/(?P[^/]+)$']

标签: pythondjangotemplatesurlview

解决方案


您的标题包含一个斜线。您应该指定path路径转换器

path('select/<id>/<path:title>', views.select, name='select'),

话虽这么说,我不确定在 url 中编码这样的标题是否是一个好主意,它会使带有很多百分比编码字符的难看的 URL。您可能想查看slug s 而不是 [Django-doc]


推荐阅读