【问题标题】:how to check date is between a range from models如何检查日期在模型范围之间
【发布时间】:2021-09-09 22:35:29
【问题描述】:

我有一个日期列表,我想检查日期是否在范围之间,然后它将通过。

这里的范围意味着我有模型Splitrule,它有startDateendDate。我想检查日期是否介于 startDate 和 endDate 之间。

到目前为止我所尝试的:

dates = list(set(OrderDetail.objects.all().values_list('orderDate', flat=True)))
        for date in dates:
            check_date = SplitRule.objects.filter(startDate__lt=date,endDate__gt=date)
            print(f'check date',check_date)

打印出来:

check date <QuerySet [<SplitRule: testing>]>

【问题讨论】:

  • 过滤器似乎没问题,它确实为其中一个日期找到了一个 SplitRule(无法通过这段代码知道哪个),但我不确定你在寻找什么:它应该打印/返回没有SplitRules的日期?它应该打印具有SplitRules 的日期吗?还有什么?

标签: django datetime django-models django-views


【解决方案1】:

你可以像这样过滤你的查询集。

OrderDetail.objects.filter(startDate_gte=your_date, endDate__lte=your_date).exists()

如果日期在 OrderDetail 的 startDate 和 endDate 之间,则返回 True,否则返回 False。

【讨论】:

  • 嘿,&lt;QuerySet [&lt;SplitRule: testing&gt;]&gt; 我有这个查询集,如何从这个查询集中获取数据?
  • 如果你删除.exists() 那么这将返回查询集@SandeepSharma
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
  • 2019-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多