Django 如何使用max(date)值筛选查询

Django 如何使用max(date)值筛选查询,django,datetime,aggregate,Django,Datetime,Aggregate,我有这个模型: class LogBook_audit(models.Model): id = models.AutoField(primary_key=True) logbook = models.ForeignKey(LogBook, verbose_name='Logbook Control No.') username = models.ForeignKey(User, null=True, blank=True,

我有这个模型:

class LogBook_audit(models.Model):
    id             = models.AutoField(primary_key=True)
    logbook        = models.ForeignKey(LogBook, verbose_name='Logbook Control No.')
    username       = models.ForeignKey(User, null=True, blank=True,  verbose_name='Username')
    status         = models.CharField(null=False, blank=False, max_length=40, choices=STATUS_TYPE, default=u'CHECKING REQUIREMENTS', verbose_name='Status')
    log_in         = models.DateTimeField(default=lambda:datetime.now(), verbose_name='Work start')
我正在尝试创建一个查询集,以查找登录此类特定日志和状态的最新用户

view.py
但是最新的用户给了我最新的日志格式。我想我可以使用
最新的用户.用户名
,但失败了。有办法找到那个用户名吗?非常感谢您的指导。

您希望获得查询集结果,因此应该使用
annotate()

希望有帮助。

您可以改用:


然后您可以通过
最新的\u日志访问用户。user

我从没想过queryset中有这样的方法。结果给了我一个最新的记录,比我使用的第一个记录编码最少。答案是2009年8月。从那以后,Django发生了很多变化。比如
latest()
是他们的任何函数,比如
oldest()
?@piyuss.Wanare。你可以使用结果给我3条记录,相当于日志的id和状态。我仍然需要在3个日志中找到最大日志<代码>打印最新用户[0],最大登录用户,
打印最新用户[1]。最大登录用户
打印最新用户[2]。最大登录用户
undolink(request, pk):
    undo_rec     = LogBook.objects.get(pk=pk)
    latest_user  = LogBook_audit.objects.filter(logbook_id=pk, status=undo_rec.status).aggregate(Max('log_in'))
...
latest_user = (LogBook_audit.objects
               .filter(logbook_id=pk, status=undo_rec.status)
               .annotate(max_log_in=Max('log_in')))
latest_log = LogBook_audit.objects.filter(logbook_id=pk, status=undo_rec.status).latest('log_in')