我在我的一个测试中遇到此错误:
NoReverseMatch: Reverse for 'plan' with arguments '()' and
keyword arguments '{u'month': u'201604'}' not found.
1 pattern(s) tried: ['plan(/(?P<month>[0-9]+))?$']
电话是
response = self.client.get(reverse('plan', kwargs={'month': '201604'}))
和urlpattern
url(r'^plan(/(?P<month>[0-9]+))?$', sp_views.plan, name='plan'),
我试图在不对网址进行硬编码的情况下调用/plan/201604
。我做错了什么?
答案 0 :(得分:2)
你需要使外部参数不被捕获:
url(r'^plan(?:/(?P<month>[0-9]+))?$', text, name='plan'),
就个人而言,我总觉得这很混乱,所以我更喜欢有两种网址模式。我还会在网址中包含一个尾部斜杠:
url(r'^plan/$', sp_views.plan, name='plan'),
url(r'^plan/(?P<month>[0-9]+)/$', sp_views.plan, name='plan'),