gpt4 book ai didi

Python - Django - 从开始日期开始过滤并计算第一年的所有人

转载 作者:行者123 更新时间:2023-12-04 10:31:31 27 4
gpt4 key购买 nike

我需要计算所有在契约(Contract)第一年的人。
我什至做了几次尝试都失败了。谁能帮我?谢谢!

模型:

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 package [pypi] ,并使用 relativedelta [readthedocs.io] :
from dateutil.relativedelta import relativedelta

total_people = Contracts.objects.filter(
start_date__gte=timezone.now() - relativedelta(years=1)
).count()

关于Python - Django - 从开始日期开始过滤并计算第一年的所有人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60401684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com