我试图从用户的多个记录中返回最近的日期.
当用户创建文档时,创建的日期存储在CreatedDocumentDetails模型中.
我无法返回用户最近创建的文档的日期.
这是我的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)
Run Code Online (Sandbox Code Playgroud)
这是我的views.py代码:
def get_latest_created_document_date(user):
??
return latest_created_document_date
Run Code Online (Sandbox Code Playgroud)
我知道我必须在用户的get_latest_created_document_date视图的过滤器中传递日期,但在搜索了SO,Google和Django文档之后,我仍然无法自己解决这个问题.
小智 8
您将要使用order_byQuerySet过滤器,如下所示:
CreatedDocumentDetails.objects.order_by('-created_document_timestamp').first()
Run Code Online (Sandbox Code Playgroud)
由于您使用的是日期字段,因此您也可以像这样使用latest过滤器:
CreatedDocumentDetails.objects.latest('created_document_timestamp')
Run Code Online (Sandbox Code Playgroud)
正如catavaran在评论中指出的那样
请注意,如果表中没有记录,
first()则会返回None但latest()会引发DoesNotExist异常
要获取日期戳,您可以将该字段追加到末尾,因为两个查询都将提供单个对象:
CreatedDocumentDetails.objects.order_by('-created_document_timestamp').first().created_document_timestamp
Run Code Online (Sandbox Code Playgroud)
要么
CreatedDocumentDetails.objects.latest('created_document_timestamp').created_document_timestamp
Run Code Online (Sandbox Code Playgroud)