我的模型(带有属性值):
MyModel:
start_date = models.DateField()
active_duration = models.IntegerField()
active_unit = models.CharField() # 'month' for month, 'year' for year
假设,我想过滤当前月份中仍处于活动状态的所有记录。为此,我正在计算使用持续时间和单位
计算的记录的最后激活日期MyModel.annotate(last_active_date=Case(When(
active_unit='month', then=ExpressionWrapper(
F('start_date') + timedelta(days=(F('duration_type'))), output_field=DateField())
)))
但这不能让我将F对象与timedelta一起使用,我也尝试过使用relative_delta。