2015-01-20 78 views
0

说我有一个模型是这样的:Django的 - 时间字段更改为日期字段

class Arrival(models.Model): 
    client = models.ForeignKey(User, related_name='client') 
    time = models.DateTimeField() 

现在我想用绘制在每个日期的唯一客户端的访问量曲线图。

我目前的做法是使用:

Arrival.objects.values('client','time') 

之后,将所有的日期时间字段转换为日期字段。使用python库获取唯一日期列表,然后遍历客户端以查明每个日期有多少客户端访问。

请问有没有人有更高效的方法?

回答

1

转贴我的答案在这里:

Get daily counts of objects from Django

(Arrival.objects 
    # get specific dates (not hours for example) and store in "created" 
    .extra({'created':"date(time)"}) 
    # get a values list of only "created" defined earlier 
    .values('created') 
    # annotate each day by Count of Arrival objects 
    .annotate(created_count=Count('id'))) 
+0

嘿,非常感谢评论。但我认为这件事不会过滤掉重复访问。你会推荐什么方法来只计算那些独特的ID? – user1819047 2015-01-21 01:18:39

+0

你怎么定义唯一性。您希望每天统计访问次数,但每个客户需要统计一次? – 2015-01-21 18:20:00