我已经在django 1.7中宣布了一个关注的网址:
url(r'^ page(/ \ w {2} / | /)$',MyView.as_view(),name ='my_name'),
在我的模板中,我想从其名称中反转网址。我试过了:
<form method="post" action="{% url 'my_namespace:my_name' variable %}">
<form method="post" action="{% url 'my_namespace:my_name' %}">
但没有任何作用,它抛出异常:
使用参数'(u'test',)'和关键字参数'{}'找不到'my_name'。尝试了1种模式:['page(\ / \ w {2} \ / | \ /)$']
请给我一些建议。谢谢。
答案 0 :(得分:4)
正则表达式似乎不匹配参数&#39; test&#39;。
如果我们看一下正则表达式(/\w{2}/|/)
,
它似乎捕获了两个被“&OR”分隔的组。 (|)operator。
第一组是/\w{2}/
。这只会匹配&#39; /&#39;然后是\ w只有2次,然后是&#39; /&#39;。
第二组仅匹配&#39; /&#39;。
&#39;测试&#39;不会与这些案例中的任何一个匹配,因此会引发异常。
我相信我们希望在这里捕获的正确正则表达式是
(\w+)
正确的网址结构如下所示,
url(r'^page/(\w+)/$', MyView.as_view(), name='my_name')
url(r'^page/$', MyView.as_view(), name='my_name')
考虑到参数&#39; test&#39;因为正则表达式(\w+)
表示匹配此组中的任何字符[a-zA-Z0-9_]
一次或多次,并且每个字符都在&#39;测试&#39;属于这一类。