Django2.0; 仍然无法获得重定向的工作方式

我是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})

urls.py就是这样


path('add_comment/<int:pk>', views.add_comment, name='add_comment'),

我可以进入此页面,但是在提交表单后,会发生此错误。


NoReverseMatch位于/ add_comment / 5


找不到'add_comment'的反向按钮。“ add_comment”不是有效的视图函数或模式名称。


要求网址:http : //127.0.0.1 : 8000/add_comment/5


即使我可以进入该URL页面,也无法重定向到同一页面。


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


临摹微笑
浏览 148回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python