我想创建一个提供一些数据计数的函数。但是有两种情况发生:
我的功能如下:
def count_emails(from_date=None,to_date=None):
emails = Emails.objects.all()
if to_date is None:
to_date = from_date
count = emails.filter(initial_date__range=(from_date,to_date)).count()
return count
期望:
def count_emails(from_date=None,to_date=None):
emails = Emails.objects.all()
if to_date is None:
count = contact.filter(initial_date__stratswith=from_date).count()
else:
count = emails.filter(initial_date__range=(from_date,to_date)).count()
return count
因此,对于今天的电子邮件计数,我只传递了from_date,但如果我使用__startswith
代替__range
,则计数显示为0(零),那么计数将是正确的。
所以我需要将它变成单个函数和单个变量。
我该怎么做?
答案 0 :(得分:0)
当您尝试设置to_date = from_date
时,您的范围是空的,但如果您的目标是任何情况下的一个代码行,则可以将范围更改为gte
和lt
def count_emails(from_date=None, to_date=None):
emails = Emails.objects.all()
if to_date is None:
to_date = from_date
to_date = to_date + timedelta(1)
count = contact.filter(initial_date__gte=from_date, initial_date__lt=to_date)).count()
return count
答案 1 :(得分:0)
我试过了一件事。
def count_emails(from_date=None, to_date=None):
emails = Emails.objects.all()
if to_date is None:
from_date = datetime.datetime.combine(from_date, datetime.time.min)
to_date = from_date + timedelta(hours=23, minutes=59)
count = emails.filter(initial_date__range=(from_date, to_date))).count()
return count
这对我来说只有一周和一天的帮助