Python Django2.0;仍然无法了解重定向的工作原理

Python Django2.0;仍然无法了解重定向的工作原理,python,django,Python,Django,我是Django的新手,我仍然不知道重定向是如何工作的 现在,我用这种方式重定向 return HttpResponseRedirect(reverse_lazy('main:index')) 这种方法有效 现在我正在创建另一个页面,我想做的是在提交表单数据后重定向到同一个页面 view.py是这样的 def add_comment(request, pk): entry = Entry.objects.get(id=pk) if request.method != 'PO

我是Django的新手,我仍然不知道重定向是如何工作的

现在,我用这种方式重定向

return HttpResponseRedirect(reverse_lazy('main:index'))
这种方法有效

现在我正在创建另一个页面,我想做的是在提交表单数据后重定向到同一个页面

view.py是这样的

def add_comment(request, pk):

    entry = Entry.objects.get(id=pk)

    if request.method != 'POST':
        form = CommentForm()
    else:
        form = CommentForm(request.POST)

        if form.is_valid():
            new_comment = form.save(commit=False)
            new_comment.user = request.user
            new_comment.save()


            return redirect('add_comment', pk=entry.id)
    return render(request, 'main/add_comment.html', {'form': form, 'entry': entry, 'comments': comments})
path('add_comment/<int:pk>', views.add_comment, name='add_comment'),
url.py是这样的

def add_comment(request, pk):

    entry = Entry.objects.get(id=pk)

    if request.method != 'POST':
        form = CommentForm()
    else:
        form = CommentForm(request.POST)

        if form.is_valid():
            new_comment = form.save(commit=False)
            new_comment.user = request.user
            new_comment.save()


            return redirect('add_comment', pk=entry.id)
    return render(request, 'main/add_comment.html', {'form': form, 'entry': entry, 'comments': comments})
path('add_comment/<int:pk>', views.add_comment, name='add_comment'),
path('add_comment/',views.add_comment,name='add_comment'),
我可以进入此页面,但在提交表单后,会发生此错误

NoReverseMatch at/add_comment/5

未找到“添加注释”的相反项“添加注释”不是有效的视图函数或模式名称

请求URL:

即使我可以进入这个url页面,我也不能重定向到同一个页面


我怎么会错呢?另外,推荐的重定向到页面的方法是什么?

您可能需要更改以下内容:

return redirect('add_comment', pk=entry.id)
为此:

return redirect('main:add_comment', pk=entry.id))

假设所有URL都位于同一命名空间中。如果您的
索引
url与您的
添加注释
url在同一列表中定义,则他们将共享
命名空间。

旁注您确定模型填写正确吗?向模型添加更多信息后,需要调用
new\u comment.save()
。如果您没有正确填写模型,那么此时可能无法导航到该模型。当您导航到一个您确信有效的页面时,重定向是否有效,即
/
/google.com
?噢,对不起,我在这里发布代码时删除了这一行。