如何在Django中检查和存储特定时间段?

时间:2018-06-21 12:21:31

标签: django python-3.x django-models django-views timedelta

我必须在Django模型的桌子上存储餐厅。每个餐厅都有其开放和关闭时间。对于每个用户,我都必须检查某个特定餐厅是否相对于当前时间,用户搜索可用餐厅。

1 个答案:

答案 0 :(得分:1)

为了进行比较(这是一个非常简单的情况),您将执行以下操作:

 is_open = user_request_time > restaurant.open and user_request_time < restaruant.close

但这可能太简单了。餐馆在不同的日期营业时间不同。

因此,您可以尝试给每个餐厅提供Schedule对象:

class Schedule(models.Model):
    sunday_open = TimeField()
    sunday_close = TimeFiled()
    ....

然后在Restaurant中创建一个类方法:

class Restaurant(models.Model):
    schedule = models.ForeignKey(Schedule)
    ....

    def is_open(self, time=None)
        if not time:
            time = timezone.now()
        today = time.weekday()
        if today == 0:
            open = self.schedule.sunday_open
            close = self.schedule.sunday_close
        elif today == 1:
             ....

        return time > open and time < close

这是我想从这样的地方开始的地方。