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 相关文章推荐
详细探究Python中的字典容器
Apr 14 Python
pytorch 转换矩阵的维数位置方法
Dec 08 Python
python隐藏终端执行cmd命令的方法
Jun 24 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
keras得到每层的系数方式
Jun 15 Python
python 如何设置守护进程
Oct 29 Python
python如何调用php文件中的函数详解
Dec 29 Python
Python对excel的基本操作方法
Feb 18 Python
Python字符串常规操作小结
Apr 03 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
PHP下对字符串的递增运算代码
2010/08/21 PHP
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
img的onload的另类用法
2008/01/10 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
Three.js基础部分学习
2017/01/08 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python executemany的使用及注意事项
2017/03/13 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Python socket模块方法实现详解
2019/11/05 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
python实现猜单词游戏
2020/05/22 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
.NET初级开发工程师面试题
2014/04/18 面试题
如何利用find命令查找文件
2015/02/07 面试题
高职助产应届生自荐信
2013/09/24 职场文书
十八大闭幕感言
2014/01/22 职场文书
后勤主管岗位职责
2014/03/01 职场文书
教师演讲稿大全
2014/05/16 职场文书
校长创先争优承诺书
2014/08/30 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
十八大观后感
2015/06/12 职场文书
小学生读书笔记
2015/07/01 职场文书