相关疑难解决方法(0)

Django - 仅由日期部分组成

MyModel.objects.filter(created_at__gte='2011-03-09', created_at__lte='2011-03-11').values('created_at','status').annotate(status_count=Count('status'))
Run Code Online (Sandbox Code Playgroud)

上面的查询有created_atdatetime字段的问题.是否可以调整上述查询以忽略时间值并在执行group by时单独使用日期值?

python django django-models django-queryset

9
推荐指数
2
解决办法
8421
查看次数

使用日期时间字段按日分组Django模型条目

我正在使用具有DateTimeField(auto_now_add = True)的类似文章来捕获发布日期(pub_date).这看起来类似于以下内容:

class Article(models.Model):
    text = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

我想做一个查询,计算每天添加多少篇文章帖子或条目.换句话说,我想查询条目并按日分组(最后是月,小时,秒等).这看起来类似于SQLite shell中的以下内容:

select pub_date, count(id) from "myapp_article"
where id = 1
group by strftime("%d", pub_date)
;
Run Code Online (Sandbox Code Playgroud)

返回的内容如下:

2012-03-07 18:08:57.456761|5
2012-03-08 18:08:57.456761|9
2012-03-09 18:08:57.456761|1
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何从Django QuerySet获得该结果.我知道如何使用itertools.groupby获得类似的结果,但在这种情况下这是不可能的(下面的解释).

此查询的最终结果将用于显示每天帖子数的图表中.我正在尝试使用Django Chartit包来实现这一目标.Chartit对数据源(DataPool)施加约束.源必须是Model,Manager或QuerySet,因此就我所知,使用itertools.groupby不是一个选项.

所以问题是...... 如何在白天对条目进行分组或聚合,最终得到QuerySet对象?

django django-models django-aggregation

9
推荐指数
1
解决办法
6586
查看次数

Django聚合.extra值

模型,带抽象基类:

class MapObject(models.Model):
    start_date = models.DateTimeField(default= datetime.strptime('1940-09-01T00:00:00',  '%Y-%m-%dT%H:%M:%S'))
    end_date = models.DateTimeField(default= datetime.strptime('1941-07-01T00:00:00',  '%Y-%m-%dT%H:%M:%S'))
    description = models.TextField(blank=True)
    location = models.PointField()
    objects = models.GeoManager()
    user = models.ForeignKey(User)
    created = models.DateTimeField(auto_now_add = True)
    last_modified = models.DateTimeField(auto_now = True)
    source = models.ForeignKey(Source)
    address= models.TextField(blank=True, null=True)
    address_road = models.TextField(blank=True, null=True)

class Meta:
    abstract = True

class Bomb(MapObject, BombExtraManager):
    #Bomb Attributes
    type = models.CharField(choices= Type_CHOICES, max_length=10)
    night_bombing = models.BooleanField(blank=True)
    map_sheet = models.ForeignKey(MapSheet, blank=True, null=True)
    def __unicode__(self):
        return self.type
Run Code Online (Sandbox Code Playgroud)

现在,我希望使用Django ORM获得与此查询相同的结果:

Select date_part('day',"start_date") as "day", date_part('hour',"start_date") as …
Run Code Online (Sandbox Code Playgroud)

django orm aggregate

1
推荐指数
1
解决办法
4081
查看次数