django返回最近的记录日期

时间:2015-01-05 02:24:49

标签: python django

我试图从用户的许多记录中返回最近的日期。

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

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

我问过question on SO这个与此问题有关的问题。

这是我的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文档之后,我仍然无法自行解决这个问题。

1 个答案:

答案 0 :(得分:6)

您需要使用order_by QuerySet filter,如下所示:

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

由于您使用的是日期字段,因此您也可以使用latest filter,如下所示:

CreatedDocumentDetails.objects.latest('created_document_timestamp')

正如catavaran在评论中指出的那样

  

请注意,如果表格中没有记录,则first()将返回None,但latest()会引发DoesNotExist例外

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

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

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