django-1.6.1的补丁,允许您使用postgres的array_accum函数。它在django.db.models中添加函数arrayaccum。使用arrayaccum只能在postgresql上工作。首先安装django-1.6.1,然后安装此软件包。
Django-ArrayAccum的Python项目详细描述
django是一个鼓励快速开发的高级python web框架 干净实用的设计。此修补程序(pypi上的pkg name django array accum)允许您使用postgresql中提供的array_accum函数。此函数将not在其他数据库中工作。如果您对postgresql很满意,并且希望能够在django中使用array_accum(而不是编写自定义sql),那么可以尝试使用这个fork。
这个补丁是为django-1.6.1创建的。安装此修补程序之前,请先安装django-1.6.1。
此修补程序修改两个文件。
- django/db/models/aggregates.py
- django/db/models/sql/aggregates.py
这将添加一个名为arrayaccum的函数,然后可以在任何涉及聚合的查询中使用该函数(类似于内置的sum、avg等)。
示例用法: 假设您有一个这样定义的模型:
class People(models.Model): first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100)
假设您想显示最常见的姓氏、计数、关联的名字,那么您可以这样做:
from django.db.models import Count, ArrayAccum results = People.objects.values("last_name").annotate(count=Count('id'), unique_first_names=ArrayAccum("first_name", distinct=True)).order_by('-count')