我有一个简单的href
下载页面的以下设置:
urls.py
urlpatterns = [
url(r'^kpis/$', InternalKPIView.as_view(), name='internal_kpis'),
url(r'^tenants/$', TenantListView.as_view(), name='tenant-list'),
url(r'^tenants/(?P<pk>[0-9]+)/$', TenantStatsView.as_view(), name='tenant-stats'),
url(r'^fileformaterror/$', FileFormatErrorView.as_view(), name='file-format-error'),
url(r'^fileformaterror/download/(?P<s3_key>.*)$', FileFormatErrorDownloadView.as_view(), name='file-format-error-download'),
]
template.html:
<a href="{% url 'file-format-error-download' s3_key=file.s3_key %}" target="_blank">Download</a>
views.py:
class FileFormatErrorDownloadView(View):
def get(self, request, s3_key):
pass
但是在执行时我收到以下错误:
django.urls.exceptions.NoReverseMatch: Reverse for 'file-format-error-download' not found. 'file-format-error-download' is not a valid view function or pattern name.
相关文件的树输出:
$ tree -I "*.pyc|__pycache__"
.
├── apps.py
├── __init__.py
├── migrations
│ └── __init__.py
├── templates
│ └── backoffice
│ ├── file_format_error.html
│ └── internal_kpis.html
├── urls.py
└── views.py
3 directories, 7 files
答案 0 :(得分:1)
根据您提供的内容,您显示的urls.py
似乎属于项目中的某个应用程序。我的猜测是该应用程序的URL未正确包含或包含在命名空间中。
答案 1 :(得分:0)
为什么不使用django2.0 +?代码如下:
urls.py
path('fileformaterror/download/<s3_key>/', FileFormatErrorDownloadView.as_view(), name='file-format-error-download')
template.html
<a href="{% url 'file-format-error-download' file.s3_key %}" target="_blank">Download</a>
views.py
from django.shortcuts import HttpResponse
class FileFormatErrorDownloadView(View):
def get(self, request, s3_key):
return HttpResponse('success')