我试图从用户的许多记录中返回最近的日期。
当用户创建文档时,创建的日期存储在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文档之后,我仍然无法自行解决这个问题。
答案 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