2012-01-31 61 views
0

我在django中创建基于概念的网站online tutor。我坚持维护教师可用性时间。 e.g. mon-fri 10am-2pm (dont know if it is good approach to keep it like this or you have good idea??)我不明白应该是什么表结构。现在我所想的是,这将是一个数组的数组,以保持一周中每个时间段的可用性。一周中的7天应该在那里。 e.g. list[7],(list[24], Boolean)。这是好的方法吗?使用这种数据结构将不会允许我在将来根据可用性时间执行filtering。请建议我一个很好的方法来实现这一点。由于在数据库中维护教师可用性计时

+0

有人问了一个非常类似的问题,他有很好的答案..我现在无法找到问题:( – juliomalegria 2012-01-31 18:35:04

+0

:'((11个字符更多) – 2012-01-31 18:38:24

回答

3

我建议有一个模型,如:

class Availability(models.Model): 
    WEEKDAY_CHOICES = (
     (0, 'Monday'), 
     (1, 'Tuesday'), 
     (2, 'Wednesday'), 
     (3, 'Thursday'), 
     (4, 'Friday'), 
     (5, 'Saturday'), 
     (6, 'Sunday'), 
    ) 

    weekday = models.PositiveSmallIntegerField(choices=WEEKDAY_CHOICES) 
    start_time = models.TimeField() 
    end_time = moels.TimeField() 

class Tutor(models.Model): 
    available_times = models.ManyToManyField(Availability) 

然后,从那里可以查询可用教师,现在通过:前段时间

Tutor.objects.filter(
    available_times__weekday=datetime.weekday(), 
    available_times__start_time__lte=time.time(), 
    available_times__end_time__gt=time.time() 
) 
+0

尼斯克里斯,非常感谢你。 – 2012-01-31 19:34:20