首页 > 解决方案 > 如何通过最近在 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>

我用什么替换'???' 和?提前致谢。

标签: pythondjangodatetimedjango-models

解决方案


你会想要这样做

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 大于或等于”


推荐阅读