如何在 Django 中显示今天、昨天和最近 7 天的数据?
How to display data Today, Yesterday and last 7 Days in Django?
我想显示 today
、yesterday
和最后 7 days
的数据,请告诉我该怎么做。
我正在尝试这个....但它只显示最近 7 天的数据,但我想根据 today
、[=13= 在我的 HTML 文件中显示数据] 和 last 7 days
这是我的 views.py
文件..
def myview(request):
datas= Mymodel.objects.filter(created_on_gte=datetime.now()-
timedelta(days=7)).count()
context= {'datas':datas}
return render(request, 'test.html', context}
这是我的 test.html
文件,我在其中显示数据...
<p>{{datas}} today</p>
<p>{{datas}} Yesterday</p>
<p>{{datas}} Last 7 Days</p>
此查询将给出聚合结果并在模板中适当使用它
from django.utils import timezone
from datetime import timedelta
from django.db import models
now = timezone.now()
Mymodel.objects.aggregate(
today=models.Count('id', filter=models.Q(created_on__date=now.date())),
yesterday=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(hours=24)).date())),
last_7_day=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(days=7)).date())),
)
更新
from django.utils import timezone
from datetime import timedelta
def myview(request):
now = timezone.now()
<b>result =</b> Mymodel.objects.aggregate(
total=models.Count('id'),
today=models.Count('id', filter=models.Q(created_on__date=now.date())),
yesterday=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(hours=24)).date())),
last_7_day=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(days=7)).date())),
)
<b>context = {'result': result}</b>
return render(request, 'test.html', <b>context</b>)
然后在您的模板中,
<p>{{ result.today }} today</p>
<p>{{ result.yesterday }} Yesterday</p>
<p>{{ result.last_7_day }} Last 7 Days</p>
尝试这样的事情:
from django.shortcuts import render
def days(request):
week = Mymodel.objects.filter(created_on_gte=datetime.now()-timedelta(days=7)).count()
yesterday = Mymodel.objects.filter(created_on_gte=datetime.now()-timedelta(days=1)).count()
today = Mymodel.objects.filter(created_on_gte=datetime.now())
context = {
'week': week,
'yesterday' : yesterday,
'today' : today,
}
return render(request, 'days.html', context)
.html
<p>{{today}} today</p>
<p>{{yesterday}} Yesterday</p>
<p>{{week}} Last 7 Days</p>
我想显示 today
、yesterday
和最后 7 days
的数据,请告诉我该怎么做。
我正在尝试这个....但它只显示最近 7 天的数据,但我想根据 today
、[=13= 在我的 HTML 文件中显示数据] 和 last 7 days
这是我的 views.py
文件..
def myview(request):
datas= Mymodel.objects.filter(created_on_gte=datetime.now()-
timedelta(days=7)).count()
context= {'datas':datas}
return render(request, 'test.html', context}
这是我的 test.html
文件,我在其中显示数据...
<p>{{datas}} today</p>
<p>{{datas}} Yesterday</p>
<p>{{datas}} Last 7 Days</p>
此查询将给出聚合结果并在模板中适当使用它
from django.utils import timezone
from datetime import timedelta
from django.db import models
now = timezone.now()
Mymodel.objects.aggregate(
today=models.Count('id', filter=models.Q(created_on__date=now.date())),
yesterday=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(hours=24)).date())),
last_7_day=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(days=7)).date())),
)
更新
from django.utils import timezone
from datetime import timedelta
def myview(request):
now = timezone.now()
<b>result =</b> Mymodel.objects.aggregate(
total=models.Count('id'),
today=models.Count('id', filter=models.Q(created_on__date=now.date())),
yesterday=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(hours=24)).date())),
last_7_day=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(days=7)).date())),
)
<b>context = {'result': result}</b>
return render(request, 'test.html', <b>context</b>)
然后在您的模板中,
<p>{{ result.today }} today</p>
<p>{{ result.yesterday }} Yesterday</p>
<p>{{ result.last_7_day }} Last 7 Days</p>
尝试这样的事情:
from django.shortcuts import render
def days(request):
week = Mymodel.objects.filter(created_on_gte=datetime.now()-timedelta(days=7)).count()
yesterday = Mymodel.objects.filter(created_on_gte=datetime.now()-timedelta(days=1)).count()
today = Mymodel.objects.filter(created_on_gte=datetime.now())
context = {
'week': week,
'yesterday' : yesterday,
'today' : today,
}
return render(request, 'days.html', context)
.html
<p>{{today}} today</p>
<p>{{yesterday}} Yesterday</p>
<p>{{week}} Last 7 Days</p>