python - 如何通过最近在 Django 中创建的过滤模型对象?
问题描述
我在 Django 的一个网站上工作,我有一个模型“问题”。Question 模型有一个“date_created”字段,它是一个 DateTimeField。
from django.db import models
from django.utils import timezone
class Question(models.Model:
...
date_created = models.DateTimeField(default=timezone.now)
在我看来,我希望能够获得过去 10 天内提出的所有问题。像这样的东西:
Question.objects.filter(???)
>> <All the questions that have been asked in the last 10 days>
我用什么替换'???' 和?提前致谢。
解决方案
你会想要这样做
from django.utils import timezone
from datetime import timedelta
ten_days_ago = timezone.now() - timedelta(days=10)
questions_last_10_days = Question.objects.filter(date_created__gte=ten_days_ago)
您用于timedelta
获取 10 天前的日期时间。
然后你使用过滤器date_created__gte
。这是一个 Django 构造,意思是“date_created 大于或等于”
推荐阅读
- python - 使用 pytest 检查应用程序文件是否导入了模块?
- ruby-on-rails - Rails 条件验证:如果:不起作用
- r - Merlin R 包 - str2lang(x) 中的错误:
:1:30: 意外符号 - azure-devops - 在现有 PUBLIC Azure DevOps 扩展中重命名 Azure Pipeline 任务
- mysql - 使用 mysqldump 的转储过程失败后 MySQL 表损坏
- latex - 根据情况调整乳胶页面标题
- amazon-web-services - 将不同的 https 子域映射到同一应用程序负载均衡器上的不同 ECS 容器?
- docker - Nexus3 存储库上的 docker 登录错误
- javascript - 角度传递事件数据未正确记录
- java - 如何在 Java 中验证欧盟 COVID 疫苗二维码签名?