将持续时间添加到日期后,Django MySQL Filter会记录日期

时间:2019-12-04 08:11:03

标签: mysql django django-models orm pymysql

我的模型(带有属性值):

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。

0 个答案:

没有答案