首页 > 解决方案 > 如何使用参数创建 Django 反向 url

问题描述

我在使用参数构造反向 url 时遇到问题

我已经尝试过这个问题的答案,但没有运气

网址.py

urlpatterns = [
    path('publication-item/<str:publication_title>', PublicationItemView.as_view(), name='publication-item'),
]

xxx.html

<a href="{% url 'publication-item {{ publication.publication_title | urlencode }}' %}">

给出错误

'publication-item {{ publication.publication_title | 反向 没有找到 urlencode }}'。'出版物项目 {{ 出版物.publication_title | urlencode }}' 不是有效的视图函数或模式名称。

然而

xxx.html

<a href="{% url 'publication-item' %}?publication_title={{ publication.publication_title | urlencode }}">

生产

未找到任何参数的“publication-item”反向。尝试了 1 种模式:['publicationspublication\-item/(?P<publication_title>[^/]+)$']

以下工作,但当然它不传递参数

网址.py

urlpatterns = [
    path('publication-item', PublicationItemView.as_view(), name='publication-item'),
]

xxx.html

<a href="{% url 'publication-item' %}" class="btn btn-primary">

我哪里错了?

标签: django

解决方案


你不应该使用双花括号,你已经在模板标签中,因此 Django 将解释变量:

<a href="{% url 'publication-item' publication.publication_title %}">

你不需要自己进行 URL 编码,Django 会自动对参数进行 URL 编码。


推荐阅读