Skip to main content

A model that tracks model fields' values.

Project description

Django Diffable

example workflow Coverage Status

About

A django abstract model that tracks model fields' values and provide some useful api to know what fields have been changed.

Install

pip install django-diffable

Usage

Inherit from DiffableModel:

from diffable.models import DiffableModel
from django.db import models


class Product(DiffableModel):
    name = models.CharField(max_length=30)

Use as follows:

>>> product = Product(name='Atari')
>>> product.has_changed
False
>>> product.changed_fields
[]
>>> product.name = 'Commodore'
>>> product.has_changed
True
>>> product.changed_fields
['name']
>>> product.diff
{'name': ('Atari', 'Commodore')}
>>> product.get_field_diff('name')
('Atari', 'Commodore')
>>> product.save()
>>> product.has_changed
False
>>> product.name = 'ZX Spectrum'
>>> product.has_changed
True
>>> product.refresh_from_db()
>>> product.has_changed
False
>>> product.name
'Commodore'

License

The Django Wicked Historian package is licensed under the FreeBSD License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-diffable-1.0.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

django_diffable-1.0.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file django-diffable-1.0.0.tar.gz.

File metadata

  • Download URL: django-diffable-1.0.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for django-diffable-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a22e7e1e0e489473811d44df1ac64c064d25924baddcf0823a0331a209f49d8c
MD5 677bec95e2949019f1e7a152ee12c661
BLAKE2b-256 f5bd1dbf5dc5421075cfbc251abb5f258d611075430722fb1014612d9bb30a90

See more details on using hashes here.

File details

Details for the file django_diffable-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: django_diffable-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for django_diffable-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 055775f8e229521889f816bcb52303989db098e8e0276f9157e024292f140a7c
MD5 85837020eb8a74fd2766d76f53d6678f
BLAKE2b-256 f957ab83e9c4fd6385f3c5afdfdd4c963a53211239ea3c7cf5f58476ecbbd05c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page