Python Django - 传递2个参数进行查看 - NoReverseMatch at / malware /

时间:2017-07-20 23:53:02

标签: regex django python-3.x url

所以我在Django中创建一个应用程序。我在应用程序的其他部分传递了1个参数,但是在添加两个时我觉得我的正则表达式错了。

这是url.py的一部分:

url(r'^(?P<uuid>(\d+))/(?P<malware>(\d+))/$', views.execute, name='execute'),

这是html文件:

<li><a tabindex="-1" href="{% url 'execute' malware=malware uuid=uuid %}">    {{ vm }}</a></li>

这是错误:

Reverse for 'execute' with keyword arguments '{'uuid': '2932b679-787a-48e0-a4f7-be020b8e4734', 'malware': 'calc.exe'}' not found. 1 pattern(s) tried: ['(?P<uuid>(\\d+))/(?P<malware>(\\d+))/$']

我假设这个错误是由正则表达式引起的。非常感谢任何帮助。

编辑:

这是固定的 - 使用以下字符串

url(r'^(?P<uuid>([0-9\-a-f]+))/(?P<malware>[a-z.]+)/$', views.execute, name='execute'), is the working string, perfect5th you've been an absolute kingpin here, thanks! – dipl0 8 hours ago   

1 个答案:

答案 0 :(得分:1)

您正在查找\d+(所有数字)的恶意软件值,但传入值'calc.exe'。尝试更改正则表达式模式以匹配所有预期值。也许[a-z.]+

同样,您的<uuid>模式应该更像[0-9\-a-f]+