Django ORM-获取早于记录的“ duration”天的记录

时间:2019-05-16 11:07:11

标签: django django-orm

我有模特:

class Plan(models.Model):
  date = models.DateTimeField()
  duration = models.DurationField(default=30)

我想使用ORM获取早于today - duration的记录。可能吗?也许存在Plan.objects.filter(date__lt='self.duration')之类的东西?

2 个答案:

答案 0 :(得分:2)

评论F expressions中提到的Ivan Starostin一样非常有用:

today = datetime.now()
plans = Plan.objects.filter(date__lt=today - F('duration'))

答案 1 :(得分:0)

是的,您可以这样做:

Plan.objects.filter(duration__lt='YYYY-MM-DD')

考虑我有一个创建了字段的产品模式

class Product(models.Model):
     created = models.DateTimeField(auto_now_add=True)
     #other fields

Product.objects.filter(created__lt='2019-05-15')