2013-06-18 72 views
0

事件的平均數量鑑於以下模型:Django的平均水平 - 每星期

DAY_OF_WEEK_CHOICES = (
    ('monday', 'Monday'), 
    ('tuesday', 'Tuesday'), 
    ('wednesday', 'Wednesday'), 
    ('thursday', 'Thursday'), 
    ('friday', 'Friday'), 
    ('saturday', 'Saturday'), 
) 

class EventForDay(models.Model): 
    event = models.ForeignKey(Event, db_index=True) 
    day_of_week = models.CharField(max_length=15, choices=DAY_OF_WEEK_CHOICES, 
     db_index=True) 
    day = models.DateField(db_index=True) 

有一種簡單的方法來查詢每個工作日發生的事件平均數?

+0

你說的容易呢?平日裏你的意思是什麼? –

+0

容易我的意思是與ORM,可能使用聚合,而不是原始的SQL,到星期幾我的意思是星期幾。 – synic

回答

1

Django的aggregation查詢可以幫助,也許像(未經測試):

from django.db.models import Avg 
WEEKDAYS = ('monday', 'tuesday', 'wednesday', 'thursday', 'friday') 
EventForDay.objects.filter(day_of_week__in=WEEKDAYS).annotate(Avg('day_of_week'))