首页 > 解决方案 > 在 POST 方法上呈现另一个视图

问题描述

我想将一些数据发布到我的索引视图,然后使用该信息呈现结果页面。但是,当我在 post 方法上返回结果视图时,什么也没有发生(索引视图不会重定向到“results_page.html”模板)

class IndexPageView(View):
    def get(self, request, *args, **kwargs):
        # Something
        return render(request, r'index_page.html', context)
    def post(self, request, *args, **kwargs):
        # Doing something with the POST data
        return ResultsView(request, results = results)

def ResultsView(request, **kwargs):
    context = {}

    if 'results' in kwargs:
        context['results'] = kwargs['results']

    print('im here')

    return render(request, r'results_page.html', context)

发布请求的状态码正常,终端上显示打印消息。我在这里做错了什么?

编辑。忘记添加 ResultsView 在通过 urls.py 调用时可以正常工作

标签: pythondjango

解决方案


ResultsView应该重命名为results_view(因为它不是一个类,而是一个函数)。

您的代码应该可以工作,以防您替换为“使用 POST 数据执行某些操作”的部分中的一切正常。

“应该工作”是指它应该返回'results_page.html'渲染,但重定向到其他 URL。

如果您希望在处理 POST 数据后进行重定向,您应该返回如下内容:

return redirect('your_result_view_name_in_urls', results=results)

推荐阅读