gpt4 book ai didi

python - 存储日期 <= 最后 24 小时时 Django 返回计数

转载 作者:太空狗 更新时间:2023-10-29 20:37:07 24 4
gpt4 key购买 nike

我是菜鸟,所以这可能是一个简单的问题,但它让我难住了。

我正在创建一个测试表单,以便每次用户创建文档时,创建文档的日期和时间都将存储在 CreatedDocumentDetails 模型中。我还没有实现这段代码,我专注于返回过去 24 小时内的计数。目前,我已将这些值手动插入到 CreatedDocumentDetails 模型中。

问题是我想统计用户在过去 24 小时内创建的文档数。 我可以返回用户保存文档的总数,但是我我不确定如何将现在的日期和时间字段写入 if 语句以返回过去 24 小时内创建的文档数。

我有以下模型:

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_created_documents(user):
created_documents = len(CreatedDocumentDetails.objects.filter(user=user))
return created_documents

我假设我以某种方式将 now datetime 字段插入到上面 get_created_documents View 代码的过滤器中。

最佳答案

首先,您现有的代码非常错误。永远不要对不需要迭代的查询集执行 len:它会无缘无故地获取所有数据。相反,使用 count():

created_documents = CreatedDocumentDetails.objects.filter(user=user).count()

其次,由于您已经有一个条件 - 关于用户 - 添加另一个条件应该不会太难。你只需要一个日期比较:

date_from = datetime.datetime.now() - datetime.timedelta(days=1)
created_documents = CreatedDocumentDetails.objects.filter(
user=user, created_document_timestamp__gte=date_from).count()

您还可以考虑重命名您的函数及其变量:您实际上并没有获得创建的文档,而是对它们进行计数,因此 count_created_documentsget_created_documents_count 将是更好的名字。

关于python - 存储日期 <= 最后 24 小时时 Django 返回计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27770837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com