美文网首页
Django 由出生日期查询年龄

Django 由出生日期查询年龄

作者: alue | 来源:发表于2023-07-03 08:59 被阅读0次

有人员模型如下:

class Person(models.Model):
    name = models.CharField(max_length=16, verbose_name='姓名')
    birthday = models.DateField(verbose_name='出生日期')

目标是高效的返回每个人员的年龄.

入门的方法是获取Queryset后,循环计算年龄, 效率较低.

好的方法是利用数据库提供的函数来计算年龄,例如PostgreSQL 提供了AGE函数, 可以这样使用:

from django.db.models import Func
class Age(Func):
    function = 'AGE'
    template = "EXTRACT(YEAR FROM (%(function)s(current_date,%(expressions)s)))"

Person.objects.annotate(age=Age('birthday')).values('id', 'name',  'age')

这里使用了 Django 的 Func API, 利用 template 属性来提取age中的年份来作为年龄.

相关文章

  • Django模型基础数据的增删改查(二十)

    一、django调试工具---django shell 进入django shell工具的具体命令如下: 二、查询...

  • aggregate和annotate方法的使用场景

    Django的aggregate和annotate方法属于高级查询方法,主要用于组合查询,是Django高手们必需...

  • # DRF serializers小结

    DRF serializers小结 django settings文件查找顺序 ​ django查询变量的顺序...

  • 第一个Django App(一)

    Part 1 查询ubuntu 16.04机器安装的Django版本为Django 2.0版本。Django 2....

  • MySQL 查询操作

    查询所有学生信息 查询所有课程名称及学分(投影和别名) 查询所有女学生的姓名和出生日期(筛选) 查询所有80后学生...

  • Python Web框架 Django - Django查询相关

    django查询 filter:查询满足条件的对象,得到QuerySet,查询结果不存在时,得到QuerySet[...

  • django查询

    条件查询 字段查询 1查询等exact : 表示判等2 模糊查询contains : 是否包含tartswith ...

  • Django: 查询

    使用Q进行复杂的查询 模糊查询 精确匹配 聚合查询

  • django查询

    1.1.1.1 查询集 1. ]在管理器上调用过滤器方法会返回查询集 2.查询集经过过滤器筛选后返回新的查询集,因...

  • Django查询

    ‘’字段查询 exact:表示判等。 list=Article.objects.filter(id__exact=...

网友评论

      本文标题:Django 由出生日期查询年龄

      本文链接:https://www.haomeiwen.com/subject/jtyqudtx.html