我在Django的一个网站上工作,我有一个模型"Question"。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>
我该用什么替换"???"具有提前谢谢。
您可能只想获得最近的N个问题。
Question.objects.order_by('-date_created')[:10]
你会想要做这个
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大于或等于"date_;