簡體   English   中英

Django:將參數從模板 {% url %} 傳遞到視圖時出現問題

[英]Django: Problem with passing parameters from a template {% url %} to a view

我有這個網址路徑:

path('download/<str:fpath>/<str:fname>', views.download, name='download'),

這是觀點:

def download(request, fpath, fname):
    # some code

在模板中,我有這個 href 標簽,我想將這些字符串作為參數傳遞給download視圖。

<a href="{% url 'download' 'lms/static/lms/files/homework/Math 1/3/3' 'hmm.pdf' %}">click me</a>

但我得到這個錯誤:

NoReverseMatch at /

Reverse for 'download' with arguments '('lms/static/lms/files/homework/Math 1/3/3', 'hmm.pdf')' not found. 1 pattern(s) tried: ['download/(?P<fpath>[^/]+)/(?P<fname>[^/]+)\\Z']

我怎樣才能解決這個問題?

str類型的 URL 參數不能包含/字符。 您可以在將您的<str:fpath>轉換為正則表達式的錯誤消息中看到這一點:

tried: ['download/(?P<fpath>[^/]+)/(?P<fname>[^/]+)\\Z']

您應該為您的案例使用path轉換器(請參見此處)。

例如:

path('download/<path:fpath>/<str:fname>', ...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM