django ListView的使用 ListView中获取url中的参数值方式


Posted in Python onMarch 27, 2020

view.py

from django.views.generic import ListView,DetailView
from xxxx.models import Model_Name
class Colortag_view(ListView):
 #context_object_name = '如果不指定的话在html页面中 可以使用object_list获取' 
 context_object_name = 'object_list'
 #template_name='html页面所在目录'
 template_name='caradmin/colortags/colortags.html'
 #自定义查询方法
 def get_queryset(self):
  #获取url 中的值 比如http://127.0.0.1/admin/colortags/?name_text=红色
  print(self.request.GET.dict())
  return Model_Name.objects.filter(**self.request.GET.dict())

urls.py

from . import views
urlpatterns = [
 path('colortags/', views.Colortag_view.as_view(), name = 'modelname_list'),
]

补充知识:Django分类查询和关键字查询以及查询后的分页

思路:分类和关键字查询分为以下几种情况:

1、只按照分类查询

2、值按照关键字查询

3、分类和关键字一起查询

第一种情况,值按照分类查询:

我们写了一个select下拉菜单来进行选择分类,当我们选中某一个分类时,则跳转到相应的分类的商品的展示页面。

<!-- 点击类别跳转到则展示相应的分类 -->
 $("#p_type").change(function(){
 var type = $(this).val()
 location.href = '/backweb/good_list/?type='+type
 })

通过原生js通过onchange给select的option标签绑定事件,jQ中使用change对select进行事件绑定,通过$(this)拿到当前点击的标签。

将获取到分类值做为?后的参数传入视图中,在视图中先将数据通过传递的分类进行筛选,再将筛选后的数据传递到页面进行渲染。

如果我们此时还做了分页展示,则将后端处理数据时的分类值也传到页面,在我们点击分页时跳转的地址?后将分类值作为参数再次传递回后端进行处理。

第二种情况,只按照关键字查询:

和分类查询类似,将文本输入标签(例如text类型的input)绑定事件,获取到输入的值,将获取的值作为地址?后的参入传递到后端。在后端通过地址后的参数将数据进行模糊(constatins)筛选,再将筛选后的商品和参数传递回前端,将数据在前端进行展示

当我们点击分页时,将查询值作为参数传递回后端。

第三种情况,同时按照分类和关键字进行查询:

此时我们需要在地址?后传递两个参数,一个是分类一个是关键字,然后在后端接收参数并进行筛选

<!-- 关键字查询 -->
function select_goods(){
 var context=$('#context').val()
 var type = $('.select').val()
 
 if (context){
  location.href = '/backweb/good_list/?type='+type+'&context='+context
 }else{
  location.href = '/backweb/good_list/?type='+type
 }
 
 
}

分页跳转地址代码

<a href="{% url 'backweb:good_list' %}?type={{ type_id }}&context={{ context }}&page=1" rel="external nofollow" >第一页</a>

views代码

def good_list(request):
 if request.method == 'GET':
  page_num = int(request.GET.get('page', 1))
  type = request.GET.get('type',0)
  context = request.GET.get('context','')
  # 如果拿不到分类则将type_id设置为0
  if not type:
   type_id = int(type)
  else:
   type_id = int(type)
  # 所有的分类
  type_list = FoodType.objects.all()
  # 根据相应的分类查找相应的商品
  # 如果type_id不为0则获取相应分类的商品
  if not type_id:
   goods = Goods.objects.all()
  else:
   goods = Goods.objects.filter(goods_type_id=type_id)
 
  # 如果有搜索条件则按照搜索条件模糊查询
  if context:
   goods = Goods.objects.filter(goods_type_id=type_id,productname__contains=context)
   if not goods:
    goods = Goods.objects.filter(goods_type_id=type_id,productname__contains=context[-1])

以上这篇django ListView的使用 ListView中获取url中的参数值方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
python格式化字符串实例总结
Sep 28 Python
理解Python中的类与实例
Apr 27 Python
python实现给微信公众号发送消息的方法
Jun 30 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
Nov 14 Python
python遍历小写英文字母的方法
Jan 02 Python
在Python中,不用while和for循环遍历列表的实例
Feb 20 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
django列表筛选功能的实现代码
Mar 27 #Python
python实现猜数游戏
Mar 27 #Python
手把手教你安装Windows版本的Tensorflow
Mar 26 #Python
python pandas.DataFrame.loc函数使用详解
Mar 26 #Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 #Python
Python函数默认参数常见问题及解决方案
Mar 26 #Python
Python内建序列通用操作6种实现方法
Mar 26 #Python
You might like
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
php和asp语法上的区别总结
2019/05/12 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
canvas的神奇用法
2017/02/03 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
js数组中去除重复值的几种方法
2020/08/03 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
python调用cmd命令行制作刷博器
2014/01/13 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
python线程join方法原理解析
2020/02/11 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
海淘母婴商城:国际妈咪
2016/07/23 全球购物
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
保安的辞职报告怎么写
2014/01/20 职场文书
大学信息公开实施方案
2014/03/09 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
初中生评语大全
2014/04/24 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
丧事答谢词大全
2015/09/30 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server