django url没有反向匹配

时间:2017-02-26 09:54:19

标签: python django

我正在尝试通过django(电子邮件,名称)中的url传递两个参数,当我只是传递电子邮件时,它工作正常,但是当我传递名称时,我得到一个错误(没有反向匹配)我的name包含空格

url pattern

url(r'^details/(?P<email>[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})/(?P<name>([\W ]+))/$', details, name="details")

完整的错误消息

Reverse for 'password' with arguments '(u'tom@example.com', u'tom')' and keyword arguments '{}' not found. 1 pattern(s) tried: ['details/(?P<email>[\\w.%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4})/(?P<name>([\\W ]+))/ $

将变量传递给url

{%url 'details' email name %}

2 个答案:

答案 0 :(得分:0)

您获得的确切错误是什么?使用多个变量时,您可以尝试以下操作。

{%url 'details' email=email name=name %}

<强>更新

url(r'^details/(?P<email>[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})/(?P<name>([\W ]+))/$', details, name="details")

答案 1 :(得分:0)

您可能想要更改

(?P<name>(\W+))  # non-alphanumeric

(?P<name>\w+)  # alphanumeric

大概认为,大写版本与您希望允许的名称(以及通常的网址)完全相反。

Python regex syntax docs.