【问题标题】:Django--change datetime field to a date fieldDjango--将日期时间字段更改为日期字段
【发布时间】:2015-01-20 22:40:01
【问题描述】:

假设我有这样的模型:

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

现在我想绘制一个图表,其中包含每个日期的唯一客户访问次数。

我目前的做法是使用:

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

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

请问有人有更有效的方法吗?

【问题讨论】:

    标签: sql django date datetime


    【解决方案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')))
    

    【讨论】:

    • 您好,非常感谢您的评论。但是我觉得这个东西并没有过滤掉重复的访问。你会推荐什么方法来只计算那些唯一的 id?
    • 你如何定义独特性。您想计算每天的访问次数,但每个客户只计算一次?
    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    相关资源
    最近更新 更多