选择日期时间戳在星期几/时间范围内的模型

时间:2012-05-11 17:46:09

标签: django django-models calendar

我有一周的开始日和一周的结束日作为配置模型中的选择

class config(models.Model)
...
    DAYS_OF_WEEK = (
    (0, 'Monday'),
    (1, 'Tuesday'),
    (2, 'Wednesday'),
    (3, 'Thursday'),
    (4, 'Friday'),
    (5, 'Saturday'),
    (6, 'Sunday'),
    )
    startday = models.Charfield(max_length = 1, choices=DAY_OF_WEEK)
    startday = models.Charfield(max_length = 1, choices=DAY_OF_WEEK)
    starttime = models.TimeField()
    endtime = models.Timefield()

我有一个单独的模型,它有一个datetimefield,用于保存带时间戳的事件。

class event(models.Model)
...
event_timestamp = models.DateTimeField()

如何获取事件模型属于开始日期/时间范围的所有配置模型?

2 个答案:

答案 0 :(得分:0)

正如Django文档所述,您可以按工作日过滤日期时间字段。 也就是说,你可以做到

Entry.objects.filter(pub_date__week_day=2) # Day 2 is Monday

也许您还可以添加范围过滤器/运算符,如下所示

Entry.objects.filter(pub_date__week_day__range=(2,4)) # Monday to wednesday

这至少是日期部分。

答案 1 :(得分:0)

我最终做了这个

day =  timestamp.weekday()
config = ZoneConfiguration.objects.get(video_channel = event.videochannel , zone_endday__gte = day, zone_startday__lte = day)

并将开始日期和结束日期重新定义为整数。

DAYS_OF_WEEK = (
            (0,'Monday'),
            (1,'Tuesday'),
            (2,'Wednesday'),
            (3,'Thursday'),
            (4,'Friday'),
            (5,'Saturday'),
            (6,'Sunday')
            )