django 获取字段最大值,最新的记录操作

如果是直接在数据库拉取

from django.db.models import Max

Argument.objects.all().aggregate(Max('rating'))

如果是从已经存在的model列表获取

from django.db.models import Max
args = Argument.objects.all()
args.aggregate(Max('rating'))

获取最新的一行数据

max_rated_entry = YourModel.objects.latest('rating')

或是提前在model中指定get_latest_by

from django.db import models

class YourModel(models.Model):
  .....
  class Meta:
    get_latest_by = 'rating'

#使用的时候
max_rated_entry = YourModel.objects.latest()
return max_rated_entry.details

补充知识: django 如何根据model获取字段的name跟verbose_name

Django中可以根据传入的model来获取对应的字段的name跟verbosname,方便使用一个统一的模板来调用

def get_headers_from_model(modelClass):
  '''
  根据model类对象获取对象的字段名,显示名
  :param modelClass:
  :return:
  '''
  cols = []
  headers = []
  for f in modelClass._meta.get_fields():
    try:
      cols.append( f.name )
      headers.append( f.verbose_name )
    except Exception as ex:
      pass
  return headers,cols

以上这篇django 获取字段最大值,最新的记录操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 关于Django Models CharField 参数说明

    如下所示: depot_name = models.CharField( u'设备库房名称', blank=True, max_length=20, null=True, # default='', help_text='显示在下方吗', ) 在这里u'设备库房名称',是将depot_name这个英文名重写,blank=True是允许表单验证为空,null=True是允许数据库这个值为空, help_text是提示信息v在这里u'设备库房名称',是将depot_name这个英文名重写,blank

  • Django中对数据查询结果进行排序的方法

    在你的 Django 应用中,你或许希望根据某字段的值对检索结果排序,比如说,按字母顺序. 那么,使用 order_by() 这个方法就可以搞定了. >>> Publisher.objects.order_by("name") [<Publisher: Apress>, <Publisher: O'Reilly>] 跟以前的 all() 例子差不多,SQL语句里多了指定排序的部分: SELECT id, name, address, city,

  • django框架使用orm实现批量更新数据的方法

    本文实例讲述了django框架使用orm实现批量更新数据的方法.分享给大家供大家参考,具体如下: 好久没有用django来改版博客了,突然感觉到生疏了.没办法,业余玩python,django,工作用java的原因,也只能如此.在用django写一个类别更新的时候同时更新子类的parentcode, 如果是自己写原生的sql的话,很好解决.但既然用 django 就用 django 的 orm 去实现: 最简单的方法: MyModel.objects.filter(parentcode=ori_

  • python 字典操作提取key,value的方法

    python 字典操作提取key,value dictionaryName[key] = value 1.为字典增加一项 2.访问字典中的值 3.删除字典中的一项 4.遍历字典 5.字典遍历的key\value 6.字典的标准操作符 7.判断一个键是否在字典中 8.python中其他的一些字典方法 9.将两个字典合并 a={'a':1,'b':2,'c':3} b= {'aa':11,'bb':22,'cc':33} #方法一 print(dict(a,**b)) #方法二 这其实就是在内存中创

  • django 获取字段最大值,最新的记录操作

    如果是直接在数据库拉取 from django.db.models import Max Argument.objects.all().aggregate(Max('rating')) 如果是从已经存在的model列表获取 from django.db.models import Max args = Argument.objects.all() args.aggregate(Max('rating')) 获取最新的一行数据 max_rated_entry = YourModel.objects

  • 在django中查询获取数据,get, filter,all(),values()操作

    django 中当我们要查询获取数据时: 数据库中的信息: 如一个学生信息表 students: get方法: students.objects().get(a = b) 其中a为students表中的一个属性如id,name 等 如:students.objects().get(name = '张三') 即获取name为张三的学生的信息 filter 用法与get相同 但是get必须只能取一个数据 filter 能去0,1,多个数据 即上述中如果表中有多个学生都叫张三同名了,get就会报错 同

  • Django记录操作日志与LogEntry的使用详解

    前言 LogEntry是在后台开发中经常用到的模块,它在admin是默认开启的. 可以使用LogEntry模块记录所有用户的操作记录.一方面可以用来监督,另一方面可以用来做回滚. 1. 使用LogEntry ModelAdmin本身就有日志记录功能.当新建一个实体(Post.Category.Tag)时,ModelAdmin会创建一条变更日志记录.当修改一条内容时,ModelAdmin又会调用LogEntry来创建一条日志,记录这个变更. ModelAdmin内部提供了两个方法,分别是log_a

  • Django获取model中的字段名和字段的verbose_name方式

    定义模型: class Game(models.Model): name = models.CharField(u'游戏名称',max_length=30) gameid = models.CharField(u'游戏id',max_length=20) def __str__(self): return self.name 获取字段名和verbose_name: from django.apps import apps def getmodelfield(appname,modelname):

  • django连接mysql数据库及建表操作实例详解

    本文实例讲述了django连接mysql数据库及建表操作.分享给大家供大家参考,具体如下: django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找到settIngs里面的database设置如下 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 's22',

  • 浅谈在django中使用filter()(即对QuerySet操作)时踩的坑

    代码伺候: 先看如下代码: 例1: message = Message.objects.filter(pk=message_id2) message[0].id = message_id2 message[0].content = content2 message[0].message_type = message_type2 print(message[0].id) print(message[0].content) message[0].save() 可正常从QuerySet中读取数据,并打

  • 详解git submodule update获取不到最新提交的代码

    今天遇到了一个git submodule update获取不到最新代码的问题,闹了半天原来是自己对git submodule理解不到位引起的.解决了后,感觉虽然没有什么高深的地方,但是不清楚的时候还是需要费时间去查找问题,所以还是在此记录如下. 1.问题描述 同事在共同使用的一个工程里修改了代码,这个工程在我本地的工程中是作为submodule来使用的,但是我在本地执行以下命令却获取不到最新提交的代码. git submodule update --init --recursive 2.问题原因

  • Vue.js使用axios动态获取response里的data数据操作

    今天开发时,使用axios返回的response中data有多个数据: 如果是获取cn里的数据的,可以用: response.data.cn 但是需求是根据选择来获取数据的,会发生变化,最开始的想法是,用一个变量来记录需要获取的key: 假设need是需要获取的某个key const dkey = this.need; response.data.dkey 这样发现获取不到数据,这是因为vue.js把dkey当成data里的某一个key了,类似于上面的"cn". 折腾了很久才突然想起,

  • django获取ajax的post复杂对象的实现方法

    一.django的request中post对象为空(即获取不到前台ajax传送的post对象) 1.将django的setting中的django.middleware.csrf.CsrfViewMiddleware注释即可. 2.或在from中添加{% csrf %},后台接受的方法上加语法糖:@csrf_exempt,注意添加引用模块 3.若以上操作后还是不行,则将form标签中的action属性去掉(这里只是针对ajax处理,非表单提交) 二.对于ajax的复杂对象,例如[{"id&quo

  • SQL排除重复结果只取字段最大值分享

    如何用SQL排除重复结果只取字段最大值的记录?要求得到的结果(即是PID相同的记录只取ID值最大的那一条). 复制代码 代码如下: select * from [Sheet1$] awhere  ID not exists (select 1 from [Sheet1$] where PID=a.PID and ID>a.ID) select a.* from [Sheet1$] a inner join (select PID,max(ID) as max_id from [Sheet1$]

随机推荐