使用 url 标签在模板中创建 url 时,django 上下文变量的行为不明确

问题描述 投票:0回答:1

我将下面的视图函数中的上下文变量

review_id
传递给模板。上下文变量应该用于使用模板标签 url 构造 url。

views.py

def report_pdf(request, review_id):
    return render(request, 'mtsAuthor/report.html', {
                    'review_id': review_id
                })

报告.html

<a href='{% url "mtsAuthor:Review" review_id %}'>Link</a>

report.html 页面已正确呈现,并且 url 也已正确生成。就我而言,网址将类似于

/report/report_pdf/8fd9caac-1bae-45eb-af9d-b9673c17c0f8/
。相关的url路径是
path('report/report_pdf/<uuid:review_id>/', views.report_pdf, name='report_pdf')

但是点击链接时,遇到以下错误:

与参数 '('',)' 不相反的 'download_review_report_pdf' 找到了。

python django django-views django-templates
1个回答
0
投票

要解决这个问题,我们应该确保 URL 在使用之前正确构造。通过将 URL 分配给模板中的变量,然后在链接中使用该变量,我可以避免此错误。

review_report.html

{% url 'myApp:download_report_pdf' custom_review_id as download_url %}
<a href="{{ download_url }}" class="btn btn-secondary btn-sm">Link</a>
© www.soinside.com 2019 - 2024. All rights reserved.