Django中自定义查询对象的具体使用

yipeiwu_com6年前Python基础

自定义查询对象 - 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())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python学习教程之Numpy和Pandas的使用

python学习教程之Numpy和Pandas的使用

前言 本文主要给大家介绍了关于python中Numpy和Pandas使用的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 它们是什么? NumPy是Pytho...

扩展Django admin的list_filter()可使用范围方法

扩展Django admin的list_filter()可使用范围方法

需求描述 有时候我们会基于已有数据生成一列在表格中,类似于下面的 class BaseSchema(models.Model): ... def test_status(self...

Python实现提取文章摘要的方法

本文实例讲述了Python实现提取文章摘要的方法。分享给大家供大家参考。具体如下: 一、概述 在博客系统的文章列表中,为了更有效地呈现文章内容,从而让读者更有针对性地选择阅读,通常会同时...

Python处理session的方法整理

Python处理session的方法整理

前言: 不管是在做接口自动化还是在做UI自动化,测试人员遇到的第一个问题都是卡在登录上。 那是因为在执行登录的时候,服务端会有一种叫做session的会话机制。 一个很简单的例子:...

Python金融数据可视化汇总

Python金融数据可视化汇总

通过本篇内容给大家介绍一下Python实现金融数据可视化中两列数据的提取、分别画、双坐标轴、双图、两种不同的图等代码写法和思路总结。 import matplotlib as mpl...