我在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 :(得分: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()
)