前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django 2.1.7 redirect重定向数据传输的问题

Django 2.1.7 redirect重定向数据传输的问题

作者头像
Devops海洋的渔夫
发布2019-08-22 22:04:10
2.7K0
发布2019-08-22 22:04:10
举报
文章被收录于专栏:Devops专栏Devops专栏

问题描述

Django 在从一个视图重定向至另一个视图的时候,需要使用return redirect('另一个视图的url') 来进行重定向,并不能像render方法一样给模板传递参数。 那么如果需要传递一些参数到另一个视图去使用呢?

场景例如:从视图1传递参数提供视图2弹窗显示。

解决的思路

直接单一使用redirect方法是没有办法传递的参数的,那么可以采用cookie和session这两种方式来存储数据,然后在另一个视图进行读取。 从而折中达到这种传递参数的效果。

那么知道解决的思路之后,相信大部分就自己怎么处理了,下面来做个简单的示例。

redirect参数传递示例

下面使用session存储数据的方式来进行一个数据传递的示例。

1) 编写一个存储session参数数据,然后redirect另一个视图B的视图A

代码语言:javascript
复制
def session_test(request):
    request.session['msg']='提示消息内容'
    return redirect('assetinfo:session_test_display')

2) 编写读取session参数的视图B

代码语言:javascript
复制
def session_test_display(request):
    return render(request, 'assetinfo/session_test.html')

3)编写视图B使用的模板,直接读取session的数据

代码语言:javascript
复制
<h1>{{ request.session.msg }}</h1>

4)测试访问视图A,然后重定向至视图B,查看是否正常显示session的数据在模板中展示

访问视图A:http://127.0.0.1:8000/assetinfo/session_test

浏览器重定向视图B后显示如下:

5)查看Django的日志,确认请求:

代码语言:javascript
复制
[22/Aug/2019 00:05:10] "GET /assetinfo/session_test HTTP/1.1" 302 0 # 302重定向
[22/Aug/2019 00:05:10] "GET /assetinfo/session_test_display HTTP/1.1" 200 201
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.08.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 解决的思路
  • redirect参数传递示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档