Django中自定义查询对象的具体使用
自定义查询对象 - objects
①声明一个类EntryManager,继承自models.Manager,并添加自定义函数
②使用创建的自定义类EntryManager 覆盖Models中的objects
# models.py class AuthorManager(models.Manager): # 新建一个类,继承自models.Manager def name_count(self, keywords): # 添加自定义的查询函数 '''统计姓名中含有某些关键字的数量''' return self.filter(name__contains=keywords).count() def lt_age(self, age): '''查询年龄小于指定年龄的信息''' return self.filter(age__lt=age) class Author(models.Model): objects = AuthorManager() # 使用创建的自定义类覆盖objects name = models.CharField(max_length=30, verbose_name='姓名') age = models.IntegerField(verbose_name='年龄') email = models.EmailField(null=True, verbose_name='邮箱') picture = models.ImageField(null=True, upload_to='static/upload/usring', verbose_name='用户头像') publisher = models.ManyToManyField(Publisher, null=True, verbose_name='出版社') # views.py def myself(request): '''自定义查询函数''' # 统计名字中包含王字的 num = Author.objects.name_count(keywords='王') # 查询年龄小于36的作者信息 authors = Author.objects.lt_age(age=36) return render(request, 'name_count.html', locals())
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
使用django的objects.filter()方法匹配多个关键字的方法
介绍: 今天在使用django的时候忽然想用到,如何匹配多个关键字的操作,我们知道django有一个objects.filter()方法,我们可以通过如下一句代码实现匹配数据库中title包含key关键词的文章名称. table.objects.filter(title__contains=key) 问题: 但是我的需求是我不仅仅只需要匹配出一个关键字的文章而是多个关键字的文章,那么我们该如何使用django的objects.filter()? table.objects.filter(titl
-
Django对models里的objects的使用详解
首先我们先熟悉下objects的大致概念. object是模型属性---用于模型对象和数据库交互 . objects = Manager() 是管理器类型的对象 ,是Model和数据库进行查询的接口. objects : 管理器对象 是Manager类型的对象,定义在from django.db import models中 用于模型对象和数据库交互 是默认自动生成的属性,但是可以自定义管理器对象 实例: class Students(models.Model): # stuobj = mode
-
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
前言 本文主要介绍的是关于Django objects.all().objects.get()与objects.filter()直接区别的相关内容,文中介绍的非常详细,需要的朋友们下面来一起看看详细的介绍: 示例代码 ret=UserInfo.objects.all() all返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使用for循环可以获取数据. ret=UserInfo.objects.get(id='1') get返回的是Model对象,类型为
-
Django objects的查询结果转化为json的三种方式的方法
第一种方式: 利用seriallizers 这个方法,官网的解释说:将复杂的数据结构变成json.xml或者其他的格式 import json from django.core import serializers def area2(request,id): data = {} province = serializers.serialize("json",AreaInfo.objects.filter(parea__isnull=True)) data["data&quo
-
Django中自定义查询对象的具体使用
自定义查询对象 - objects ①声明一个类EntryManager,继承自models.Manager,并添加自定义函数 ②使用创建的自定义类EntryManager 覆盖Models中的objects # models.py class AuthorManager(models.Manager): # 新建一个类,继承自models.Manager def name_count(self, keywords): # 添加自定义的查询函数 '''统计姓名中含有某些关键字的数量''' ret
-
Django中Q查询及Q()对象 F查询及F()对象用法
Django Q/F #1 环境 Python3.7.3 Django==2.0.6 #2 开始 #2.1 django F()表达式 每次获取times当前的值,再+1,这样需要将times值取出,存到内存中 obj = models.Test.objects.get(name="cox") obj.times = obj.times + 1 obj.save() 虽然 obj.times = F("times") + 1 看起来像常规的Python为实例属性赋值
-
Django中自定义admin Xadmin的实现代码
在Django框架中,自带一个后台管理页面admin,这个管理页面很全,但是,有些并不是我们需要的,所以我们可以根据admin的实现流程来自定义自己的需求,即根据admin的实现方式来实现自定制--Xadmin 首先,我们先解析admin的流程,在Django中,我们在创建项目的时候,Django自带一个admin的url,实现了不同模型表的增删改查,那么admin是如何实现url的分发的? 我们可以从三部分来看admin的路由分发实现 1,启动 我们可以通过from django.contri
-
Django中自定义模型管理器(Manager)及方法
1.自定义管理器(Manager) 在语句Book.objects.all()中, objects 是一个特殊的属性,通过它来查询数据库,它就是模型的一个Manager. 每个Django模型至少有一个manager,你可以创建自定义manager以定制数据库的访问. 这里有两个方法创建自定义manager:添加额外的manager;修改manager返回的初始Queryset. 添加额外的manager 增加额外的manager是为模块添加 表级功能 的首选办法.(至于 行级功能 ,也就是只作
-
在django中自定义字段Field详解
Django的Field类中方法有: to_python() # 把数据库数据转成python数据 from_db_value() # 把数据库数据转成python数据 get_pre_value() # 把python数据压缩准备存入数据库 get_db_pre_value() # 把压缩好的数据转成数据库查询集 get_prep_lookup() # 指定过滤的条件 value_to_string() # 数据序列化 如果创建的Field比字符串,日期,整数等更复杂的数据结构,可能需要重写t
-
Django 中自定义 Admin 样式与功能
Django 中自定义 Admin 样式与功能 自定义 Admin 样式与功能 1 页面修改中文 1.1 语言设置为中文 settings.py LANGUAGE_CODE = 'zh-hans' 修改结果 1.2 应用管理设置为中文 应用/apps.py from django.apps import AppConfig class BbssConfig(AppConfig): name = 'bbs' # 添加下面这句 verbose_name = 'BBS系统' 修
-
Django 中自定义 Admin 样式与功能的实现方法
自定义 Admin 样式与功能 1 页面修改中文 1.1 语言设置为中文 settings.py LANGUAGE_CODE = 'zh-hans' 修改结果 1.2 应用管理设置为中文 应用/apps.py from django.apps import AppConfig class BbssConfig(AppConfig): name = 'bbs' # 添加下面这句 verbose_name = 'BBS系统' 修改结果 1.3 数据库表设置为中文 应用/models.py class
-
在Django中自定义filter并在template中的使用详解
Django内置的filter有很多,然而我们由于业务逻辑的特殊要求,有时候仍然会不够用,这个时候就需要我们自定义filter来实现相应的内容.接下来让我们从自定义一个get_range(value)来产生列表的filter开始吧. 首先在你的django app的models.py的同级目录建立一个templatetags的文件夹,并在里面新建一个init.py的空文件,这个文件确保了这个文件夹被当做一个python的包.在添加了templatetags模块之后,我们需要重新启动服务器才能使其
-
详解django中自定义标签和过滤器
想要实现自定义标签和过滤器需要进行准备工作: 准备(必需)工作: 1 在某个app下创建一个名为templatetags(必需,且包名不可变)的包.假设我们在名为polls的app下创建了一个templatetags的包,并在该包下创建了一个名为mytags的文件.那么目录结构看起来应该就像这样: polls/ __init__.py models.py templatetags/ __init__.py mytags.py views.py 2 settings文件中的INSTALLD_A
-
Django中常用的查询数据方法及查询对象的条件详解
(1)常用的查询方法: 1.获取所有记录: s = User.objects.all() 2.获取第一条数据: s = User.objects.first() 3.获取最后一条数据: s = User.objects.last() 关于二.三两个方法注意点: 对于QuerySet对象,我们也是可以通过下标取值获取对应的实例对象.如下所示--虽然这两个方法作用一致(获取到对应的实例对象),但是推荐使用(而且一般使用的)都是first()方法及last()方法. 原因--如果查询的数据不存在的话,
随机推荐
- 以用户名注册为例分析三种Action获取数据的方式
- JS实现最简单的冒泡排序算法
- Javascript 6里的4个新语法
- Windows server利用批处理脚本判断端口启动tomcat的方法
- js实现前端图片上传即时预览功能
- 用PHP写的基于Memcache的Queue实现代码
- javaScript嗅探执行神器-sniffer.js
- C语言演示对归并排序算法的优化实现
- WordPress入门指南-wordpress安装使用说明
- php实现加减法验证码代码
- JavaScript中DOM详解
- shell监控脚本实例—监控mysql主从复制
- jQuery多项选项卡的实现思路附样式及代码
- python中遍历文件的3个方法
- 按键盘方向键翻页跳转的javascript代码(支持ie,firefox)
- javascript设计模式之中介者模式学习笔记
- VS2008中文试用版改为正式版的破解方法
- win2003远程退出后系统自动注销问题的解决方法
- Java concurrency之AtomicLong原子类_动力节点Java学院整理
- shiro并发人数登录控制的实现代码