在Django ORM中注释DateTimeField和IntegerField之和?

在Django ORM中注释DateTimeField和IntegerField之和?,django,django-orm,Django,Django Orm,鉴于: 如何获取所有未过期会员资格的查询集 我想写一些像这样的东西 from django.conf import settings from django.db import models class Membership(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL) started = models.DateTimeField() num_weeks = models.Intege

鉴于:

如何获取所有未过期会员资格的查询集

我想写一些像这样的东西

from django.conf import settings
from django.db import models

class Membership(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    started = models.DateTimeField()
    num_weeks = models.IntegerField()
但我怀疑F表达式是否与timedelta兼容,即使它们是兼容的,
timedelta(weeks=)
也与F表达式不兼容,因此此代码失败。我猜我需要将IntegerField转换为某种类型的数据库级别的持续时间类型,但是我在文档中找不到关于如何执行这种操作的线索

from datetime import datetime, timedelta
Membership.objects.annotate(
    ended=F('started') + datetime.timedelta(weeks=F('weeks'))
).filter(ended__gt=datetime.today())