python - Django 过滤对象 F ('duration' ) 从现在开始

标签 python django django-queryset

我有一个模型:

class Examle(models.Model):
  date = models.DateTime(auto_add_now=True)
  duration = models.IntegerField(default=90) # days

我想像这样过滤它:

Example.objects.filter(date_lt=datetime.today() - timedelta(days=F('duration')))

当然timedelta不会将F-object作为有效参数,但希望你明白我的意思。

最佳答案

您无法将 F 传递给 timedelta,但您可以使用它进行计算:

timedelta(days=1) * F('duration')

或者,如果您使用的是 Django 2.x,请尝试:

Example.objects.annotate(days_before_today=ExtractDay(datetime.today() - F('date'))\
    .filter(days_before_today__gte=F('duration'))

关于python - Django 过滤对象 F ('duration' ) 从现在开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55144997/

相关文章:

javascript - Google Analytics 跟踪用户类型问题

django - 有人知道好的 Django URL 命名空间教程吗?

mysql - django admin list_display 来自两个表,没有可用的关系,如外键或多对关系

python - NLTK,将单词数字读入 float

python - 使用 Python 将 JSON 转换为 SQL : Suggested libraries/techniques to look into?

python - pandas:groupby 多列,连接一列同时添加另一列

python - 如何在一个 DataFrame 中组合字符串

django - 在 Digital Ocean Droplet 中更新 Django postgresql 数据库?

python - 使用 Django (queryset) - postgres 计算一年中期间的天数

与管理器相关的 Django 重复查询