django-denormalized
Utils for maintaining denormalized aggregates for Django models.
Example
from django.db import models
from src.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)
Metadata
Release files for django-denormalized 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_denormalized-1.0.0.tar.gz | 6.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_denormalized-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.8 kB
Release files / django_denormalized-1.0.0.tar.gz
| Download URL | django_denormalized-1.0.0.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f473ead81a739dd7ddeb67d0ee1000c0444dfcc44353d56664d69934a96139e
|
|
BLAKE2b-256 checksum How to use checksums |
fbb41243e6e7776ea84ced751a1f18066d4f621d45226af96011c6c79e2b0c7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / django_denormalized-1.0.0-py3-none-any.whl
| Download URL | django_denormalized-1.0.0-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
99a264000874d17ae5455c8736b0adb6fd63b32092353f53b709891973954fd3
|
|
BLAKE2b-256 checksum How to use checksums |
d2109df274d4bc7dd5b234233605b0d63b57c66b866897f6a45073ceb765fb24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|