gpt4 book ai didi

python - Django 午夜营业时间后 TimeField 比较错误

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:44 25 4
gpt4 key购买 nike

我有一个营业时间需要比较,如果营业时间超过午夜,我会得到不完整的结果

我的模型

class Hours(models.Model):
dayofweek = models.ForeignKey('Dayofweek')
opentime = models.TimeField(blank=True, null=True)
closetime = models.TimeField(blank=True, null=True)
...

如果我只需要显示时间,一切正常,例如: 周六下午 5 点 - 凌晨 2 点

现在,当我尝试查询营业时间以检查企业是否营业时,午夜过后的营业时间将为 exists() 返回 False:

我的问题

if Hours.objects.filter(
business__id=id,
dayofweek__pyday=dt,
opentime__lte=mytime,
closetime__gte=mytime).exists():
#do something

有什么建议可以告诉 Django 凌晨 2 点是下午 5 点之后吗?

最佳答案

一天可以有多个时段,但无论如何,一天在晚上 11:59 结束。如果这延长到第二天,你必须打破你的时间间隔。所以你的过滤器的逻辑将是这样的......

# Spans over 2 days
if opentime > closetime:
Hours.objects.filter(
business_id=id,
dayofweek_pyday=dt,
opentime_tye=myOpenTime,
closetime_gte=11:59:99
).exists() ||
Hours.objects.filter(
business_id=id,
# Next date
dayofweek_pyday=dt + 1,
opentime_tye=00:00:00,
closetime_gte=myCloseTime
).exists()
# Spans over 1 day
else:
Hours.objects.filter(
business__id=id,
dayofweek__pyday=dt,
opentime__lte=myOpentime,
closetime__gte=myClosetime).exists()

我不了解 Django,所以这只是一些伪代码和我会使用的替代方法。

关于python - Django 午夜营业时间后 TimeField 比较错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com