Django呈现正确的视图但URL不正确

时间:2018-04-26 23:10:28

标签: python django

我正在创建一个视频共享应用程序。在我的视频页面上,我允许用户发表评论和删除评论。

def video_content(request, video_id):
    video = get_object_or_404(Video, pk=video_id)
    ....
    return render(
        request,
        'video-content.html',
        context={
            'video': video,
        }
    )

我显然在代码中省略了很多东西。

我还有一个评论处理函数

def add_comment(request, video_id):
    video = get_object_or_404(Video, pk=video_id)

    if request.method == 'POST' and request.user.is_authenticated:
        # Get comment and save it

    return HttpResponse()

在我的视频页面上,我有一个表单:

<form action="/comment/add/{{video.id}}" method="post">
    <input type="text"></input>
    <button type="submit">Comment</button>
</form>

所有这一切都很好。当用户输入注释并提交表单时,add_comment函数被成功调用,就像它应该的那样,并且注释被保存。视频页面没有重新加载,这就是我想要的,但顶部栏上的URL会发生变化。我怎样才能防止这种情况发生?

1 个答案:

答案 0 :(得分:3)

您需要做的就是将用户重定向到您想要的视图。

def add_comment(request, video_id):
    video = get_object_or_404(Video, pk=video_id)
    if request.method == 'POST' and request.user.is_authenticated:
        # Get comment and save it
        return redirect("video_content",video.id)


    # return HttpResponse() # this, is not correct
    return render(request,"template_name.html",{})