Utils for maintaining denormalized aggregates for Django models
Project description
django-denormalized
Utils for maintaining denormalized aggregates for Django models.
Example
from django.db import models from denormalized import DenormalizedTracker, DenormalizedForeignKey class Group(models.Model): members_count = models.PositiveIntegerField(default=0) points_sum = models.PositiveIntegerField(default=0) class Member(models.Model): group = DenormalizedForeignKey( Group, models.CASCADE, trackers=[ DenormalizedTracker( # name of field to store denormalized count of active members "members_count", # callback to determine whether object should be counted or not callback=lambda obj: obj.active, # QuerySet filter to count only suitable objects query=models.Q(active=True)), DenormalizedTracker( # multiple denormalized fields tracked for single foreign key "points_sum", # Sum/Min/Max is also supported aggregate=models.Sum("points")) ]) active = models.BooleanField(default=True) points = models.IntegerField(default=0)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for django_denormalized-0.15.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b3b18f1efed8a81f258489b940c5e8a82f57daea996725e00c50b6e4c354327 |
|
MD5 | 21ded575981ea9235d46feaf8393ca23 |
|
BLAKE2-256 | 9adc9f763b21938b415aeff66ee0b3cd8f436817754bd1396f502683b09491b0 |