django - 将变量附加到 {% url 'app_name:viewname' %} 的语法
问题描述
如何将变量附加到模板中的 url 名称,例如:
{% for table in tables %}
<a href="{% url 'menu:menu_view' %}">
<button class="button table{{table.pk}}">Table {{table.pk}}</button>
</a>
{% endfor %}
作为table.pk
计数器(从视图函数传入),我想将其标记为,menu:menu_view
以便我可以拥有menu:menu_view1
,menu:menu_view2
等。
然后我可以将我的命名urlpatterns
如下:
path('<int:table.pk/', views.menu_view, name='menu_view' + str(table.pk)),
解决方案
{% url … %}
模板标签 [Django-doc]接受任意数量的位置和命名参数来解析 url 。
如果您因此命名路径:
path('<int:table_pk>/', views.menu_view, name='menu_view'),
您可以使用:
{% url 'menu_view' 2 %} /2/
{% url 'menu_view' table_pk=4 %} /4/
{% url 'menu_view' table.pk %}
{% url 'menu_view' table_pk=table.pk %}
因此,您可以将参数传递给{% url … %}
模板标签,然后将这些参数填写在 URL 中。
推荐阅读
- python-3.x - 无法删除包含字符串“False”作为值的字典
- javascript - Chart.js 当多个点重合时显示单点的标签/工具提示
- javascript - 在加载图像之前初始化 Masonry JS
- xamarin.forms - 无法让 PropertyChanged.Fody 在 Xamarin.Forms 应用程序中工作
- spring - JPA 存储库多对一
- javascript - 循环遍历表格中所有行中的所有单元格
- database - MongoDB 和 Redis:你如何估计开销的大小?
- c++ - 如何在 Debian Linux 上的 exe 中转换 .out 文件?
- flutter - 如何解决这个颤振安装问题?
- python - 如何使用 BFS 找到最近的节点?