我是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页面,也无法重定向到同一页面。
我怎么会这样呢?另外,推荐的重定向到页面的方法是什么?
相关分类