Django:从某个d开始,25号经过多少次

2024-03-28 13:54:33 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,在我的django项目中,我有下面的模型,我想做一个@property函数,计算从date_created到一个月25号的次数。

例如:
我在2019年1月1日创建了这个模型 函数现在应该返回3,因为之后有3个。你知道吗

class Plan(models.Model):
    title = models.CharField(max_length=50)
    date_created = models.DateTimeField(default=timezone.now)
    plan_type = models.IntegerField()
    owner = models.ForeignKey(User, on_delete=models.CASCADE)

感谢您的帮助<;3


Tags: 项目django函数模型datemodeltitlemodels
1条回答
网友
1楼 · 发布于 2024-03-28 13:54:33

我认为您应该看看dateutil库中的rrule函数。你知道吗

这应该给你什么,你正在寻找,但我还不能测试它。你知道吗

from datetime import datetime
from dateutil.rrule import rrule, MONTHLY
len(list(rrule(MONTHLY, bymonthday=(25), dtstart=PlanModel.date_created, until=datetime.now())))

如果您不想使用这个库,我会重复几天来查找每天的数字,类似这样的(也无法测试)

from datetime import timedelta, datetime

def daterange(start_date, end_date):
    for n in range(int ((end_date - start_date).days)):
        yield start_date + timedelta(n)

start_date = PlanModel.date_created
end_date = datetime.now()

if start_date.day == 25:
    c=1
else:
    c=0

for single_date in daterange(start_date, end_date):
    if single_date.day == 25:
        c+=1

相关问题 更多 >