如何向Django模板url标记添加两个url参数?

2024-06-30 07:52:45 发布

您现在位置:Python中文网/ 问答频道 /正文

  • 我的django版本是2.0.5

  • 我的操作系统版本是ubuntu 20.04

  • 我想在Django模板url标记中传递两个url参数,我的url代码是blow

path('download/<str:bucket>/<str:object>/',views.Download.as_view(), name='download'),# appname= storage
  • 下面的代码可以工作
<a href="{% url 'storage:download'  bucket=bucket  object='object.Key'    %}">{{ object.Key }}</a>

但是下面的代码不起作用

 <a href="{% url 'storage:download'  bucket=bucket object= object.Key %}">{{ object.Key }}</a>
 <a href="{% url 'storage:download' bucket object.Key %}">{{ object.Key }}</a>

django呈现此页面时,会引发NoReverseMatch at /storage/file/MonitorNodes/错误

NoReverseMatch at /storage/file/MonitorNodes/
Reverse for 'download' with keyword arguments '{'bucket': 'MonitorNodes', 'object': 'directory/'}' not found. 1 pattern(s) tried: ['storage/download/(?P<bucket>[^/]+)/(?P<object>[^/]+)/$']
Request Method: GET
Request URL:    http://127.0.0.1:8000/storage/file/MonitorNodes/
Django Version: 2.0.5
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'download' with keyword arguments '{'bucket': 'MonitorNodes', 'object': 'directory/'}' not found. 1 pattern(s) tried: ['storage/download/(?P<bucket>[^/]+)/(?P<object>[^/]+)/$']
Exception Location: /home/cedar/dashboard/.dashboard-env/lib/python3.8/site-packages/django/urls/resolvers.py in _reverse_with_prefix, line 632
Python Executable:  /home/cedar/dashboard/.dashboard-env/bin/python
Python Version: 3.8.5
Python Path:    
['/home/cedar/dashboard',
 '/home/cedar/.vscode-server/extensions/ms-python.python-2021.5.842923320/pythonFiles/lib/python/debugpy/_vendored/pydevd',
 '/usr/lib/python38.zip',
 '/usr/lib/python3.8',
 '/usr/lib/python3.8/lib-dynload',
 '/home/cedar/dashboard/.dashboard-env/lib/python3.8/site-packages']
Server time:    Fri, 21 May 2021 11:27:39 +0800

有什么方法可以让我的代码工作吗?


Tags: djangokey代码urlhomeobjectbucketdownload