我遇到了Django urlconf的一个大问题。我不能让正则表达式匹配 在urls.py。
这是我正在做的事情:
在我的javascript中我有
var source = 'http://127.0.0.1:8000/quiltmaker/block'+i+'/shoefly'+i+'/';
记录为
img.src http://127.0.0.1:8000/quiltmaker/block3/shoefly3/
我的网址是:
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^about/$', views.about, name='about'),
url(r'block(\d{1,3})/([a-z]{7})(\d{1,2})/$', views.block),
)
正则表达式适用于iPython解释器:
js = 'block3/shoefly3/'
r = re.compile(r'block(\d{1,3})/([a-z]{7})(\d{1,2})/$')
r
Out[60]: re.compile(r'block(\d{1,3})/([a-z]{7})(\d{1,2})/$')
m = r.search(js)
m
Out[62]: <_sre.SRE_Match at 0x10f262ae0>
m.span()
Out[63]: (0, 16)
但Django从不调用该视图。
如果urlpattern是
,它确实有效url(r'block(\d{1,3})/shoefly(\d{1,2})/$', views.block)
请帮忙。这让我比以前更疯狂。
答案 0 :(得分:1)
感谢Peter DeGlopper指出我正确的方向。 urlconf没有将我发送到视图,因为视图期待两个参数,而我发送了三个参数。在视图中添加另一个parmeeter就可以了:
之前
def block(request, idx, blockno)
在
def block(request, idx, type, blockno)