2017-10-17 85 views
3

我需要比較同一周(isocalendar)中的事件總數,年比。Django查詢去年同一週

class MyModel(models.Model): 
    date = models.DateTime(... 
    hits = models.IntegerField(... 

我有了這個排序去年,上個月,去年同月,同日去年使用上的變化:

same_month_last_year = MyModel.objects.filter(date__month = (datetime.datetime.now().month), date__year = (datetime.datetime.now() - relativedelta(years = 1)).year).aggregate(total=Sum('hits')['total'] 

我沒有看到一個相當於「周」功能。我可以在等式右邊使用.isocalendar()[1],但這對左邊沒有任何幫助。有任何想法嗎?謝謝。

回答

2

Django 1.11增加了一個week filter。你可以使用它嗎?

如果沒有,您可能可以查看源代碼並選擇它。

作爲最後的手段,您可以使用Python來計算去年同一週的日期範圍,然後將這些日期作爲過濾器傳遞給Django查詢。

+0

完美的解決方案。 – William