如何使用max(date)值过滤查询

Cha*_*iam 2 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,  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')
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个查询集来查找log_in以获取此类特定日志和状态的最新用户.

view.py

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'))
...
Run Code Online (Sandbox Code Playgroud)

但是latest_user给了我一个最新的log_in格式.我以为我可以使用latest_user.username但失败了.有没有办法找到该用户名?任何指南都非常感谢.

dan*_*son 6

你可以latest()改用:

latest_log = LogBook_audit.objects.filter(logbook_id=pk, status=undo_rec.status).latest('log_in')
Run Code Online (Sandbox Code Playgroud)

然后你可以通过访问用户latest_log.user.