我正在尝试创建一个完整的查询集,现在我只需要从模型中获取两个DateTime字段之间的月份,就可以在单个查询集中执行此操作。
我不是说过滤器,因为在模型中,例如我有两个datetimeField(),现在我想做的是,在这两个日期之间有几个月。

最佳答案

如果您的数据库支持DurationField,则可以使用ExtractMonth

from django.db import models
from django.db.models.functions import ExtractMonth

queryset = MyModel.objects.annotate(
    diff=models.ExpressionWrapper(
        models.F('date1') - models.F('date2'), output_field=models.DurationField())
    ).annotate(months=ExtractMonth('diff'))

关于django - 可能在Django queryset中的两个日期之间获得几个月的时间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49856951/

10-09 20:15
查看更多