python - 在 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 调用时可以正常工作
解决方案
ResultsView
应该重命名为results_view
(因为它不是一个类,而是一个函数)。
您的代码应该可以工作,以防您替换为“使用 POST 数据执行某些操作”的部分中的一切正常。
“应该工作”是指它应该返回'results_page.html'
渲染,但不重定向到其他 URL。
如果您希望在处理 POST 数据后进行重定向,您应该返回如下内容:
return redirect('your_result_view_name_in_urls', results=results)
推荐阅读
- regex - 正则表达式:从路径中提取特定字符串
- php - 如何仅使用 php 创建wireguard 密钥?
- python - cvxpy -> OSQP 或 cvxpy -> CVXOPT 它是如何工作的?
- c# - Azure Kubernetes 服务并使用 c# 通过 smtp 发送邮件
- javascript - 避免 Angular 中的嵌套循环
- reactjs - 当您不知道路径时,在 gastby 中动态创建页面
- swift - 使用 == 比较 firebase 文档中的数据会给出协议 'Any',因为类型不能符合 'Equatable'
- php - 更改 php var 表单付款处理
- php - 为什么 nodejs 服务器会收到很多未知的 php/wordpress 请求?
- json - 需要在 PostgreSQL 选择查询中将 3 个 json 对象嵌套到一个 json 对象中