Django 通过将月份添加到日期字段来进行注释

问题描述

from datetime import timedelta
from django.db.models import DateTimeField,ExpressionWrapper,F


MyModel.objects.annotate(
    date_plus345=ExpressionWrapper(F('creation_date') + timedelta(days=345),output_field=DateTimeField()
    )
)

像这样有什么办法可以在creation_date字段中添加40个月并进行注释吗?

解决方法

相对延迟对您有帮助吗?

from dateutil.relativedelta import relativedelta
    MyModel.objects.annotate(
        date_plus345=ExpressionWrapper(F('creation_date') + relativedelata(months+=40),output_field=DateTimeField()
        )
    )