我正在尝试通过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 %}
答案 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
大概认为,大写版本与您希望允许的名称(以及通常的网址)完全相反。