django return 一条记录的最近日期

django return the most recent date of a record

我正在尝试 return 用户从多个记录中获取最近的日期。

当用户创建文档时,创建日期存储在 CreatedDocumentDetails 模型中。

我无法return 用户最近创建文档的日期。

我问了这个,这与这个问题有点相关。

这是我的 model.py 代码:

class CreatedDocumentDetails(models.Model):
    user = models.ForeignKey(User)
    created_document_timestamp = models.DateTimeField(auto_now_add=True, blank=True)

    def __unicode__(self):
        return unicode(self.user)

这是我的 views.py 代码:

def get_latest_created_document_date(user):
    ??
    return latest_created_document_date

我知道我必须在用户的 get_latest_created_document_date 视图的过滤器中传递日期,但是在搜索 SO、Google 和 Django 文档之后,我仍然无法弄清楚靠我自己。

您需要使用 order_by QuerySet filter,像这样:

CreatedDocumentDetails.objects.order_by('-created_document_timestamp').first()

由于您使用的是日期字段,因此您也可以像这样使用 latest filter

CreatedDocumentDetails.objects.latest('created_document_timestamp')

正如评论中所说的双体船

Note that if there is no records in table then first() will return None but latest() will raise DoesNotExist exception

要只获取日期戳,您可以将该字段附加到末尾,因为两个查询都会给出一个对象:

CreatedDocumentDetails.objects.order_by('-created_document_timestamp').first().created_document_timestamp 

CreatedDocumentDetails.objects.latest('created_document_timestamp').created_document_timestamp