Database django 1.5按日期获取最新记录
我想得到所有最新日期的记录Database django 1.5按日期获取最新记录,database,django,date,orm,Database,Django,Date,Orm,我想得到所有最新日期的记录 class Report(models.Model): id = models.AutoField(primary_key=True) part = models.ForeignKey(Part,related_name="reports") this_week_use = models.IntegerField(blank=True,null=True,default=0) this_week_fail = models.IntegerFie
class Report(models.Model):
id = models.AutoField(primary_key=True)
part = models.ForeignKey(Part,related_name="reports")
this_week_use = models.IntegerField(blank=True,null=True,default=0)
this_week_fail = models.IntegerField(blank=True,null=True,default=0)
this_week_fail_percent = models.DecimalField(max_digits=5,decimal_places=2,blank=True,null=True,default=0.00)
prev4_week_use = models.IntegerField(blank=True,null=True,default=0)
prev4_week_fail = models.IntegerField(blank=True,null=True,default=0)
prev4_week_fail_percent = models.DecimalField(max_digits=5,decimal_places=2,blank=True,null=True,default=0.00)
platform = models.ForeignKey(Platform,related_name="reports")
date = models.DateField(auto_now_add=True)
class Meta:
unique_together = ('part','platform','date')
我试过了
rows = Report.objects.annotate(max_date=Max('date').filter(date=max_date))
这导致没有数据使用latest()
方法
Report.objects.latest('date')
您可以使用,它在1.5
中提供:
latest_rows = Report.objects.all().order_by('-date')
如果您希望在报告
模型中进行任何查询,默认情况下按此日期
字段排序,则可以将其添加到报告
模型的元部分
class Report(models.Model):
class Meta:
ordering = '-date'
现在您可以在查询中不使用order\u by
进行查询,但结果相同:
latest_rows = Report.objects.all()
如果您不介意进行两个查询,则应该这样做:
max_date = Report.objects.latest('date').date
qs = Report.objects.filter(date=max_date)
这会给我最新的日期不是所有记录都有最新的日期。