Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database django 1.5按日期获取最新记录_Database_Django_Date_Orm - Fatal编程技术网

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)

这会给我最新的日期不是所有记录都有最新的日期。