{ "info": { "author": "Romain Garrigues", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "===================\nDjango Dirty Fields\n===================\n\n.. image:: https://badges.gitter.im/Join%20Chat.svg\n :alt: Join the chat at https://gitter.im/romgar/django-dirtyfields\n :target: https://gitter.im/romgar/django-dirtyfields?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n.. image:: https://travis-ci.org/romgar/django-dirtyfields.svg?branch=develop\n :target: https://travis-ci.org/romgar/django-dirtyfields?branch=develop\n.. image:: https://coveralls.io/repos/romgar/django-dirtyfields/badge.svg?branch=develop\n :target: https://coveralls.io/r/romgar/django-dirtyfields?branch=develop\n.. image:: http://readthedocs.org/projects/django-dirtyfields/badge/?version=develop\n :target: http://django-dirtyfields.readthedocs.org/en/develop/?badge=develop\n\nTracking dirty fields on a Django model instance.\nDirty means that field in-memory and database values are different.\n\nThis package is compatible and tested with latest versions of Django (1.8, 1.9, 1.10, 1.11 series).\n\n`Full documentation `_\n\nInstall\n=======\n\n::\n\n $ pip install django-dirtyfields\n\n\nUsage\n=====\n\nTo use ``django-dirtyfields``, you need to:\n\n- Inherit from ``DirtyFieldsMixin`` in the Django model you want to track.\n\n::\n \n from django.db import models\n from dirtyfields import DirtyFieldsMixin\n\n class TestModel(DirtyFieldsMixin, models.Model):\n \"\"\"A simple test model to test dirty fields mixin with\"\"\"\n boolean = models.BooleanField(default=True)\n characters = models.CharField(blank=True, max_length=80)\n\n- Use one of these 2 functions on a model instance to know if this instance is dirty, and get the dirty fields:\n\n * is\\_dirty()\n * get\\_dirty\\_fields()\n\n\nExample\n-------\n\n::\n\n >>> from tests.models import TestModel\n >>> tm = TestModel.objects.create(boolean=True,characters=\"testing\")\n >>> tm.is_dirty()\n False\n >>> tm.get_dirty_fields()\n {}\n\n >>> tm.boolean = False\n\n >>> tm.is_dirty()\n True\n >>> tm.get_dirty_fields()\n {'boolean': True}\n\n\nConsult the `full documentation `_ for more informations.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/romgar/django-dirtyfields", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-dirtyfields", "package_url": "https://pypi.org/project/django-dirtyfields/", "platform": "", "project_url": "https://pypi.org/project/django-dirtyfields/", "project_urls": { "Homepage": "http://github.com/romgar/django-dirtyfields" }, "release_url": "https://pypi.org/project/django-dirtyfields/1.3.1/", "requires_dist": null, "requires_python": "", "summary": "Tracking dirty fields on a Django model instance (actively maintained)", "version": "1.3.1" }, "last_serial": 3626584, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "5826efc2423bdb4b82b4b063fcc72f0e", "sha256": "23f25591027764927e525aea55c945b9855d891c66d3a15fb881c056352b67a0" }, "downloads": -1, "filename": "django_dirtyfields-0.1-py2.6.egg", "has_sig": false, "md5_digest": "5826efc2423bdb4b82b4b063fcc72f0e", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 4530, "upload_time": "2011-01-21T18:50:29", "url": "https://files.pythonhosted.org/packages/95/41/99f8a7a71b847381387a4aef9807fe66e67a578d5231892ac0302285ba46/django_dirtyfields-0.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "06df34007103e4712f55b6f3d8fb6a5f", "sha256": "2f2aef3870b6c841bc537db5b8a5dc11275163a5e9320423d9fb8a826e93bb19" }, "downloads": -1, "filename": "django-dirtyfields-0.1.tar.gz", "has_sig": false, "md5_digest": "06df34007103e4712f55b6f3d8fb6a5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4375, "upload_time": "2011-01-21T18:51:22", "url": "https://files.pythonhosted.org/packages/39/36/cea62ab059cadbc7406f26b7fd729dac63efad18e776fb389db2dae52313/django-dirtyfields-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "ccceb966154b4965f809fbeb0a177a9e", "sha256": "05e60643953ec6d3e7bbb91d5ec823386d63fa505657d7b24c905d956096aa9b" }, "downloads": -1, "filename": "django-dirtyfields-0.2.tar.gz", "has_sig": false, "md5_digest": "ccceb966154b4965f809fbeb0a177a9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3730, "upload_time": "2013-11-21T06:47:25", "url": "https://files.pythonhosted.org/packages/b2/f6/80341e2bf24db29bd4ccac24ca2d541173ea06d3afb445b5e9c1b710723d/django-dirtyfields-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "f2cfcb1b450be78308b9ebf6d41a2c87", "sha256": "c6c805e0dd5cd50119b5aa6a0cc153e6b1d824a54a7c51d9350eff093146a37e" }, "downloads": -1, "filename": "django-dirtyfields-0.3.tar.gz", "has_sig": false, "md5_digest": "f2cfcb1b450be78308b9ebf6d41a2c87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3752, "upload_time": "2014-03-11T13:49:27", "url": "https://files.pythonhosted.org/packages/6d/f9/cb7b0297c36d58d3776d69b17427dd469d892cb25772df93015ae48966d0/django-dirtyfields-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "8d0fea16eca7b30e9a51bf501d16720f", "sha256": "18eea8addc6086359414074876514051ca9f9848ad607604ebbbfa539f3f6d31" }, "downloads": -1, "filename": "django-dirtyfields-0.4.tar.gz", "has_sig": false, "md5_digest": "8d0fea16eca7b30e9a51bf501d16720f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4172, "upload_time": "2015-03-31T19:57:13", "url": "https://files.pythonhosted.org/packages/17/06/fd48951bc99ea3da1baf8736b670640f7b5f3c5738810269670928752572/django-dirtyfields-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "a982d06003ddcc9cf36776792174c586", "sha256": "cf337e072bb616d3546bc219b2fa22e5259922a4f08f4d75e88691b7d490d45e" }, "downloads": -1, "filename": "django-dirtyfields-0.4.1.tar.gz", "has_sig": false, "md5_digest": "a982d06003ddcc9cf36776792174c586", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4174, "upload_time": "2015-04-08T22:23:54", "url": "https://files.pythonhosted.org/packages/0e/ee/4049feca143115836b2caed321e6267f3f2bdaa36286b679a504254cef93/django-dirtyfields-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "6cb6c9fc153b4f317a06fc41e7159111", "sha256": "e3d9d078600980fbf0f879e8693df48858c80a7eec1467362d59ecaeabb22da5" }, "downloads": -1, "filename": "django-dirtyfields-0.5.tar.gz", "has_sig": false, "md5_digest": "6cb6c9fc153b4f317a06fc41e7159111", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4366, "upload_time": "2015-05-08T09:13:39", "url": "https://files.pythonhosted.org/packages/bd/88/03a2bab44a3c285b024b933d903a641125b2752189734a1ec24f07d39d0d/django-dirtyfields-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "9f3014a59cd9d1d6fb998c833285b335", "sha256": "a771d6f4ffc5db9a30ecb64cce2829b7d8fe840f38d680533598c5d4546cf79c" }, "downloads": -1, "filename": "django-dirtyfields-0.6.tar.gz", "has_sig": false, "md5_digest": "9f3014a59cd9d1d6fb998c833285b335", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4396, "upload_time": "2015-06-11T12:54:38", "url": "https://files.pythonhosted.org/packages/9a/84/5c3a1920e71ab0b76e171199aed455e7825d7b3ace78be5b0679960d535c/django-dirtyfields-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "b303f59f894ab4b115a152b027014a0c", "sha256": "37fa134ebcb69e6d22c3ae1266959c20aff60492a757f9e490ab547edf468ea2" }, "downloads": -1, "filename": "django-dirtyfields-0.6.1.tar.gz", "has_sig": false, "md5_digest": "b303f59f894ab4b115a152b027014a0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4625, "upload_time": "2015-06-14T12:56:12", "url": "https://files.pythonhosted.org/packages/ca/db/4047ab7ecf68bafaf6a2682e8043d6d9f875b4c8b818f3b4e1ef9218faa3/django-dirtyfields-0.6.1.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "66c4b8c6882d06f923c850bf7ec80fd4", "sha256": "53fe6cc4abc05da8f0f032202d5a10dbdf2ade4d42bc70f56557b292bf327289" }, "downloads": -1, "filename": "django-dirtyfields-0.7.tar.gz", "has_sig": false, "md5_digest": "66c4b8c6882d06f923c850bf7ec80fd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4714, "upload_time": "2015-06-18T21:13:48", "url": "https://files.pythonhosted.org/packages/f4/18/802f385c6b0ac143456dc8f21f08df2f382865f2090ff23a96ed0c7c5c34/django-dirtyfields-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "2fcb486cf3d9b4e2e1bd89c0955e751f", "sha256": "556be9b8594dd4930a817ba0108fad47c953972006621f0918d81df393064d87" }, "downloads": -1, "filename": "django-dirtyfields-0.8.tar.gz", "has_sig": false, "md5_digest": "2fcb486cf3d9b4e2e1bd89c0955e751f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5306, "upload_time": "2015-10-31T15:41:08", "url": "https://files.pythonhosted.org/packages/f1/9c/d05c342a079ee1bc7f1b1009dda1ee12efb52fa3a1dc831918241fa77d06/django-dirtyfields-0.8.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "44e06e98fcd038b0db4526d7169f3df2", "sha256": "d382f0508f0dc8b694f84f6aefc2212f081ae8abed64d1d41393aab6338a55b5" }, "downloads": -1, "filename": "django-dirtyfields-0.8.1.tar.gz", "has_sig": false, "md5_digest": "44e06e98fcd038b0db4526d7169f3df2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5534, "upload_time": "2015-12-08T00:17:47", "url": "https://files.pythonhosted.org/packages/07/8b/fa5a9997a39eddf29d362768dac52a761bbca018db16cdc4349baf1c0bda/django-dirtyfields-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "6e2fb4665980ccd087cf1bde1cbe342a", "sha256": "90a60223a373ec563c0e6b013121a2d965233498384af0cf132b1622d0d8aa19" }, "downloads": -1, "filename": "django-dirtyfields-0.8.2.tar.gz", "has_sig": false, "md5_digest": "6e2fb4665980ccd087cf1bde1cbe342a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6219, "upload_time": "2016-03-18T22:35:40", "url": "https://files.pythonhosted.org/packages/b1/9e/5f7727a7f6737ea3ccd6be1e2992ae900016b14f9911cf9204ab4deacdac/django-dirtyfields-0.8.2.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "ea8da0b6c2f327432cb45d6e7af9a6b9", "sha256": "2e7299cee8eaa42a913ba500298067bf09de00463fbf13253d846ca3f23aad4c" }, "downloads": -1, "filename": "django-dirtyfields-0.9.tar.gz", "has_sig": false, "md5_digest": "ea8da0b6c2f327432cb45d6e7af9a6b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5777, "upload_time": "2016-06-18T11:21:33", "url": "https://files.pythonhosted.org/packages/fb/36/1c7f5d19e3ae1ac7f368357e95f7a981127d91ce649ce7e55f8ab6da29a6/django-dirtyfields-0.9.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "7f088b13ce890a0aed3b09aa2e2d82d9", "sha256": "fa14d18de1f3989032a4a820dce085e6889331463ad5f3558e2540fcd795dffb" }, "downloads": -1, "filename": "django-dirtyfields-1.0.tar.gz", "has_sig": false, "md5_digest": "7f088b13ce890a0aed3b09aa2e2d82d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5876, "upload_time": "2016-06-26T16:37:38", "url": "https://files.pythonhosted.org/packages/dc/45/c8c8de1600691f0f5dc761d340a0715f2d3f64e4ffc8482691af8cce3a5e/django-dirtyfields-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3213895c201cf8dd8d29b11842a900d7", "sha256": "c91c93e1529b38133d7f4a0449513134f158f48d30d40584576c8d372fe20113" }, "downloads": -1, "filename": "django-dirtyfields-1.0.1.tar.gz", "has_sig": false, "md5_digest": "3213895c201cf8dd8d29b11842a900d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5871, "upload_time": "2016-07-25T18:26:31", "url": "https://files.pythonhosted.org/packages/cb/c5/da6268ce1cc23c953e3f4d6224280c3d88b15ec5d30162cd8bd0dda91177/django-dirtyfields-1.0.1.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "77d433293ea5f5139af8312a9ff4dfc8", "sha256": "941032d2bfba099427feacc1f7e22e43c8db4bd8e59bc1c9c17ff0f894e16adc" }, "downloads": -1, "filename": "django-dirtyfields-1.1.tar.gz", "has_sig": false, "md5_digest": "77d433293ea5f5139af8312a9ff4dfc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6001, "upload_time": "2016-08-04T19:08:00", "url": "https://files.pythonhosted.org/packages/d1/3d/291eab2ec3a3bc63dabe821bb65839b8abf4021294558cdd67f7baa9d90e/django-dirtyfields-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "efc9d5c3ee39e372dac9e59824a73071", "sha256": "e8e985b4382ca6b5a69efdcbe34333fdbf013fb35d1489be581b45b2782340dd" }, "downloads": -1, "filename": "django-dirtyfields-1.2.tar.gz", "has_sig": false, "md5_digest": "efc9d5c3ee39e372dac9e59824a73071", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6144, "upload_time": "2016-08-11T21:11:46", "url": "https://files.pythonhosted.org/packages/04/ea/7e5bf8e38b204e889685588b9e872c4c6188c7e8a2d50c199cd6324c73f9/django-dirtyfields-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "63bbe17e2ea14b4ecb54591ae55e90c4", "sha256": "6f2e988121323cd8a15cef3035f5ea5942d3e41f76c3b2e1de0b81761a000c94" }, "downloads": -1, "filename": "django-dirtyfields-1.2.1.tar.gz", "has_sig": false, "md5_digest": "63bbe17e2ea14b4ecb54591ae55e90c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6332, "upload_time": "2016-11-16T22:52:06", "url": "https://files.pythonhosted.org/packages/db/3c/817e14781c538410d7f72be058ff6c0af48a9bc90c0fb12a80d8a18c7235/django-dirtyfields-1.2.1.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "2f07876321f17f6b98c0745cc1abe26c", "sha256": "9f477eb9b22ecdb5439134900232195553834291c1070a6b8fdfec86ecfa98b2" }, "downloads": -1, "filename": "django-dirtyfields-1.3.tar.gz", "has_sig": false, "md5_digest": "2f07876321f17f6b98c0745cc1abe26c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5873, "upload_time": "2017-08-23T13:50:27", "url": "https://files.pythonhosted.org/packages/c9/46/6990b0534a21f421ec7ce28976c3c3dd46f043e671c0dd2a81db8f3eb904/django-dirtyfields-1.3.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "db1b633307e716dfd60f8f45f3f054fa", "sha256": "c3aafe524fc26c6ac573bbaf3ea852607e7b0f8622a2ec23dcdf65e1a9dcb7bb" }, "downloads": -1, "filename": "django-dirtyfields-1.3.1.tar.gz", "has_sig": false, "md5_digest": "db1b633307e716dfd60f8f45f3f054fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6014, "upload_time": "2018-02-28T20:53:30", "url": "https://files.pythonhosted.org/packages/9a/74/a4ecf8e4e168f4883f32a279294b0e3d36832b32ce76630b78a18b61b450/django-dirtyfields-1.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "db1b633307e716dfd60f8f45f3f054fa", "sha256": "c3aafe524fc26c6ac573bbaf3ea852607e7b0f8622a2ec23dcdf65e1a9dcb7bb" }, "downloads": -1, "filename": "django-dirtyfields-1.3.1.tar.gz", "has_sig": false, "md5_digest": "db1b633307e716dfd60f8f45f3f054fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6014, "upload_time": "2018-02-28T20:53:30", "url": "https://files.pythonhosted.org/packages/9a/74/a4ecf8e4e168f4883f32a279294b0e3d36832b32ce76630b78a18b61b450/django-dirtyfields-1.3.1.tar.gz" } ] }