1. 程式人生 > 程式設計 >django 獲取欄位最大值,最新的記錄操作

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 獲取欄位最大值,最新的記錄操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。