/hightop.py

A nice shortcut for group count queries with Django

Primary LanguagePythonMIT LicenseMIT

Hightop.py

A nice shortcut for group count queries with Django

Visit.objects.top('browser')
# {
#   'Chrome': 63,
#   'Safari': 50,
#   'Firefox': 34
# }

Build Status

Installation

Run:

pip install hightop

Getting Started

Add a custom manager to the models where you want to use it.

from hightop import HightopQuerySet

class Visit(models.Model):
    objects = models.Manager.from_queryset(HightopQuerySet)()

And query away

Visit.objects.top('browser')

Options

Limit the results

Visit.objects.top('referring_domain', 10)

Include null values

Visit.objects.top('search_keyword', null=True)

Works with multiple groups

Visit.objects.top(['city', 'browser'])

And expressions

Visit.objects.top(Lower('referring_domain'))

And distinct

Visit.objects.top('city', distinct='user_id')

And min count

Visit.objects.top('city', min=10)

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/hightop.py.git
cd hightop.py
pip install -r requirements.txt
pytest