フィリペ・フォンセカ:
私は契約の初年度にあるすべての人をカウントする必要があります。私もいくつかの試みがなされ、失敗しました。缶誰の助け私?ありがとう!
モデル:
class Contracts(models.Model):
person = models.CharField(max_length=50, null=True, blank=True, verbose_name='Name')
start_date = models.DateField(null=True, blank=False, verbose_name='Start')
def __str__(self):
return '{}'.format(self.person)
これまでのところ...
見る:
def people_in_first_year(request):
people = Contracts.objects.filter(Q(start_date__lte=timezone.now()) & Q(end_date__gte=timezone.now() + timedelta(days=365)))
total_people = people.count()
context = {
'total_people': total_people,
}
return render(request, 'people.html', context)
ウィレム・ヴァン・当社:
そこではありませんのでend_date
、あなたはその一つをあまりフィルタリングすることはできません。あなたが行うことができますが、単純に設定されているstart_date
以上、今に等しいマイナス365日と:
total_people = Contracts.objects.filter(
start_date__gte=timezone.now() - timedelta(days=365)
).count()
今年は、しかし、それ自体は365日ではありません。あなたは例のメイクの使用をすることができますpython-dateutil
パッケージ[は、PyPI]で、作業relativedelta
[readthedocs.io] :
from dateutil.relativedelta import relativedelta
total_people = Contracts.objects.filter(
start_date__gte=timezone.now() - relativedelta(years=1)
).count()