Как задать ограничение в Django, чтобы выводились данные только за последние сутки из БД( SQLite )
Нужно чтобы на выходе был отчёт с данными за последние сутки. Мой код выводит все данные. Как поставить ограничение? Если возможно в цикле {% if Datapack.downloaded %}.
Вот HTML
<tr>Отчёт о данных за последние сутки</tr>
<tr>
<th>Имя файла<th>
<th>Размер файла, байт</th>
<th>Дата принятия</th>
<th>Оператор</th>
</tr>
{% for Datapack in Datapacks %}
*{% if Datapack.downloaded ???? %}*
<tr>
<td><div>{{Datapack.filename }}</div> </td>
<td><div>{{Datapack.size }}</div></td>
<td><div>{{Datapack.downloaded }}</div></td>
<td><div>{{Datapack.uploader}}</div></td>
</tr>
</thead>
{% endif %}
{% endfor %}`
Модель
class Datapack(models.Model):
code = models.UUIDField(
auto_created=True, default=uuid.uuid4, unique=True, editable=False
)
filename = models.CharField("Имя файла", max_length=200)
location = models.CharField("Расположение на диске", max_length=1000, blank=True, null=True)
size = models.BigIntegerField("Размер файла, байт", blank=True, null=True)
downloaded = models.DateTimeField("Дата принятия", blank=True, null=True)
uploader = models.UUIDField(blank=True, null=True)
Views.py
from django.shortcuts import render
from isist.models import Datapack
def index(request):
Datapacks = Datapack.objects.all()
return render (request, 'otchet/otchet.html', {'Datapacks': Datapacks })
Отфильтруйте данные при запросе в БД:
from django.utils import timezone
from datetime import timedelta
...
one_day_ago = timezone.now() - timedelta(days=1)
Datapacks = Datapack.objects.filter(downloaded__gte=one_day_ago)
...