我收到以下错误的NoReverseMatch错误:
<a href ="{% url 'mainapp:secondaryapp:generateCSV' file_ids=fileids %}">Hello</a>
我在渲染时将视图中的字符串fileids
传递给我的模板。
使用参数'()'和关键字参数
反转'generateCSV' 找不到'{'file_ids':'11111111_22222222'}'。 1种模式尝试过:
[ 'mainapp / secondaryapp / generateCSV /(ΔP[\ d {8,20}] + \ _ *)/ $']
我的mainapp/urls.py
是:
from django.conf.urls import url, include
from mainapp import views
urlpatterns = [
...
url(r'^secondaryapp/', include('secondaryapp.urls', namespace="secondaryapp")),
]
和secondaryapp/urls.py
是:
from django.conf.urls import url
from search import views
urlpatterns = [
url(r'^$', views.secondaryapp.as_view(), name='secondaryapp'),
url(r'^generateCSV/(?P<file_ids>[\d{8,20}]+\_*)/$', views.generateCSV, name='generateCSV'),
]
generateCSV
是一个功能视图,secondaryapp
是基于类的视图的名称。我在基于类的视图中渲染模板,并尝试使用参数fileids
调用功能视图。
如果我只是按如下方式对网址进行硬编码:
<a href = "generateCSV/{{fileids}}/">
一切都按预期工作。
非常感谢你的阅读时间和任何帮助,你可以给我!
答案 0 :(得分:0)
我的一位朋友指出我的正则表达式错了;如果您在secondaryapp/urls.py
url(r'^generateCSV/(?P<fileids>(?:\d{8,20}_)*\d{8,20}?)/$', views.generateCSV, name='generateCSV'),
以secondaryapp/templates/secondaryapp/template.html
<a href = "{% url 'mainapp:secondaryapp:generateCSV' fileids %}">
然后事情按预期工作。
显然,当我尝试使用它们进行特殊字符分组时,它就是方括号;根据他的说法,他们将通常的操作员转变为常规角色,并可能使我接受逗号和大括号。
根据this:
“在方括号内,大多数字符按字面解释。”