[英]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.