在Django中使用Redirect的NoReverseMatch

时间:2012-02-08 23:48:03

标签: django

我是Python和Django的新手。我正在尝试重定向到第二个视图功能。这是我的网址配置:

urlpatterns = patterns('dept.pv.verif.views',
    (r'^apps/dept/pv/verif/$', 'index', {}, 'index'),
    (r'^apps/dept/pv/verif/display$', 'display', {}, 'display'),
    (r'^apps/dept/pv/verif/display/(?P<action>\w{1})/(?P<id>\w{8})/$', 'display', {}, 'display'),
    url(r'^apps/dept/pv/verif/display/(?P<action>\w{1})/(?P<id>\w{8})/$', 'display', name='display'),)

这是我的观点功能:

def index(request):
    context = {}
    visit_switch = request.GET.get('visit_switch')
    if not visit_switch:
        id_form = Enter_ID()
    else:
        id_form = Enter_ID(request.GET)
        if id_form.is_valid():
            return redirect('display', action='R', id='test')
    context['id_form'] = id_form
    return render_to_response('index.html', {'context':context})

和第二个:

def display(request, action, id):
# ...
    return render_to_response('index.html')

我收到NoReverseMatch错误。我不明白为什么重定向行与我的一个网址不匹配。如果您能提供任何帮助,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

此正则表达式组:

(?P<id>\w{8})

只匹配8个字符的长度。如果您实际上正在通过id='test',那将是您的问题。