首页 > 其他分享 >django的web项目中重定向页面时的部分信息传输——以删除含有分页的列表记录为例

django的web项目中重定向页面时的部分信息传输——以删除含有分页的列表记录为例

时间:2023-05-06 14:25:24浏览次数:42  
标签:web 删除 为例 xxx request django 筛选 page 页面

问题:在管理系统界面往往是有分页的,初次编写列表的删除功能时很可能会出现删完之后页面跳转到第一页的问题,或者筛选完之后删除某一项结果删完之后跳转到未筛选页面。与实际分页管理的效果大庭相径。

解决思路:

1. 起初只遇到了分页的情况,解决方法很简单,在删除按钮的href中直接传值,例如:xxx/xxx/?page=10&uid=15。然后在views中定义的delete方法里使用request.GET获得这两个值,uid的值用来实现数据库里该条目的删除,接下来直接重定向到page页码就行了。思路很清晰,但是一般的列表都有一个筛选功能……于是问题出现了。

2. 筛选完毕后页面的url形如:xxx/xxx/?sel=name&search=小红,如果按照1中所述方法就会出现很尴尬的场面,首先传过去的page是筛选后的page,但删除之后它会跳转到未筛选页面的这个page,可以说前后毫无逻辑。解决方法是获得筛选时提交的信息,request.META提供了这一功能。

request.META包含当前HTTP请求的Headers头部信息,字典形式。 在诸多键值对里为顺利实现这项功能需要的是'HTTP_REFERER',该值是删除按钮所处界面的url包含了页面上被提交的信息,甚至1中描述的方式都显得繁琐。使用方法如下所示:

1 def xxx_delete(request):
2     url = request.META['HTTP_REFERER']
3     nid = request.GET['nid']
4     models.Xxx.objects.filter(id=nid).delete()
5     return redirect(url)

 

 

标签:web,删除,为例,xxx,request,django,筛选,page,页面
From: https://www.cnblogs.com/raininghill/p/17377127.html

相关文章

  • Web|Buuctf-[NPUCTF2020]ezinclude
    查看源码提示md5($secret.$name)===$passcookie中存在hash,hash随着name的变化而变化hash填入pass参数请求跳转到404页面使用burpsuite发包,提示存在flflflflag.php页面flag不在此页面,并且页面存在文件包含漏洞读取flflflflag.php页面源码<html><head><scriptlangua......
  • Web|Buuctf [NCTF2019]SQLi
    直接给出了查询语句select*fromuserswhereusername=''andpasswd=''构造语句查询,发现有过滤fuzz一下,很多参数都被过滤robots协议下发现hint.txt文件hint.txt文件,有被过滤的参数,但是没有过滤"、|和\,并且提示只要密码与admin的密码相同就可以获得flag解题思路无......
  • SpringWeb Flux入门
    新建项目,加入依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.springframew......
  • Web|[SWPUCTF 2018]SimplePHP
    访问是一个文件上传页面,点击查看文件页面可以发现特殊的链接,应该存在文件包含http://dfef288e-1b73-48e0-9458-a4e733c40c38.node4.buuoj.cn:81/file.php?file=查看源码发现一些文件,页面内容提示flag在f1ag.php中index.phpfile.phpupload_file.phpf1ag.php直接包含f1a......
  • web------JSF ----2
    JSF简介一、 什么是JSF:JavaServerFaces(JSF)是一种用于构建Web应用程序的新标准Java框架。它提供了一种以组件为中心来开发JavaWeb用户界面的方法,从而简化了开发。JavaServerFaces于2004年三月1.0版正式提出,清楚的将Web应用程序的开发者划分......
  • Could not create ActionMapper: WebWork will *not* work!
    CouldnotcreateActionMapper:WebWorkwill*not*work!解决方法:将webwork.properties的webwork.objectFactory=springwebwork.objectFactory.spring.autoWire=name 两行去掉就可以了......
  • web视图层进化史
    经过多年的发展,视图层经历了四个阶段,一个java中写html阶段(前端语言和后端语言写在一文件里面,类如servlet)一个html中写java阶段(例如jsp)一个html中标签化java阶段(例如thymleaf模板引擎)html和java单独部署阶段,之间使用json格式传输数据,这种方式目前是主流方式(例如前端vue,后端springb......
  • Web
    node.js概述一分钟的视频讲了下spring和node.js的优劣,感兴趣的话可以康康spring生态好,使用者多,功能全面且稳定;node.js发展晚一些,框架多,但现在还处于各开发者群魔乱舞的阶段,比较混乱但在快速发展。教程当时自学不会的就看的黑马程序员,不懂的可以找对应的p看,讲得很细的可以开......
  • Python之路,Day15 - Django适当进阶篇
    本节内容学员管理系统练习DjangoORM操作进阶用户认证 1.Django练习小项目:学员管理系统设计开发带着项目需求学习是最有趣和效率最高的,今天就来基于下面的需求来继续学习Django 项目需求:1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个......
  • WPF项目中使用WInform版本的 ChromiumWebBrowser控件嵌套网页 解决中文输入法候选框定
    创建一个用户控件,后台代码:publicpartialclassCefControl:UserControl{ChromiumWebBrowserwebView=null;publicCefControl(){InitializeComponent();if(!CefSharp.Cef.IsInitialized){......