對於具有自定義BusinessHours和Events的給定業務,我需要弄清楚如何爲每個事件獲取最近的前一個工作日(比如說幾周的事件)。例如,假設一個企業在週日,週三,週五和週六有營業時間。鑑於2011年6月22日星期三下午3點開始的活動,我如何纔能有效地確定2011年6月19日星期日是此活動的最近一個工作日?下面是型號:如何確定自定義營業時間內事件的最近一個營業日?
class Business(models.Model):
name = models.CharField(max_length=50)
class BusinessHours(models.Model):
"""
I realize there are better ways to store business hours,
but this approach is simple and serves my purposes for now.
However, if another schema solves the problem above more efficiently,
feel free to make a suggestion.
"""
business = models.ForeignKey(Business)
sunday_open = models.TimeField(blank=True, null=True)
sunday_close = models.TimeField(blank=True, null=True)
monday_open = models.TimeField(blank=True, null=True)
monday_close = models.TimeField(blank=True, null=True)
... continue for each day ...
class Event(models.Model):
business = models.ForeignKey(Business)
start = models.DateTimeField()
end = models.DateTimeField()
我假設大多數工作都需要在python除了Django的發生,所以忽略了Django模型,如果它的解決方案複雜化。如果需要,我很樂意提供其他信息。提前致謝!
謝謝你的回答!您使用values()的建議有助於我指出正確的方向。我正在使用values_list()來生成每天的打開時間列表:[sunday_open,monday_open,tuesday_open,wednesday_open,thursday_open,friday_open,saturday_open]。通過這種方式,我可以使用當前事件的.weekday()作爲索引開始遍歷列表,直到找到前一天業務開放的時間。我仍在研究細節,但我希望在第二天或第二天提供更多細節。 – 2011-06-16 22:26:48
我很高興你發現它有幫助!看起來你正在找一個很好的方法來解決它:)我期待着聽到更多關於它的信息 – 2011-06-16 23:28:28