{ "info": { "author": "netzkolchose", "author_email": "j.breitbart@netzkolchose.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "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 :: Database", "Topic :: Database :: Front-Ends", "Topic :: Software Development :: Libraries" ], "description": "|Build Status| |Coverage Status|\n\ndjango-computedfields\n~~~~~~~~~~~~~~~~~~~~~\n\ndjango-computedfields provides autoupdated database fields for model\nmethods.\n\nTested with Django 1.10, 1.11 (Python 2.7, 3.5, 3.6) and Django 2.0, 2.1\n(Python 3.5 and 3.6).\n\nExample\n^^^^^^^\n\nJust derive your model from ``ComputedFieldsModel`` and place the\n``@computed`` decorator at a method:\n\n.. code:: python\n\n from django.db import models\n from computedfields.models import ComputedFieldsModel, computed\n\n class MyModel(ComputedFieldsModel):\n name = models.CharField(max_length=32)\n \n @computed(models.CharField(max_length=32))\n def computed_field(self):\n return self.name.upper()\n\n``computed_field`` will be turned into a real database field and can be\naccessed and searched like any other database field. During saving the\nassociated method gets called and it\u2019s result written to the database.\nWith the method ``compute('fieldname')`` you can inspect the value that\nwill be written, which is useful if you have pending changes:\n\n.. code:: python\n\n >>> person = MyModel(forename='berty')\n >>> person.computed_field # empty since not saved yet\n >>> person.compute('computed_field') # outputs 'BERTY'\n >>> person.save()\n >>> person.computed_field # outputs 'BERTY'\n\nThe ``computed`` decorator supports a ``depends`` keyword argument to\nindicate dependencies to other model fields. If set, the computed field\ngets automatically updated upon changes of the related fields:\n\n.. code:: python\n\n from django.db import models\n from computedfields.models import ComputedFieldsModel, computed\n\n class MyModel(ComputedFieldsModel):\n name = models.CharField(max_length=32)\n fk = models.ForeignKey(SomeModel)\n \n @computed(models.CharField(max_length=32), depends=['fk#fieldname'])\n def computed_field(self):\n return self.name.upper() + self.fk.fieldname\n\nNow changes to ``fk.fieldname`` will now also update ``computed_field``.\n\nDocumentation\n^^^^^^^^^^^^^\n\nThe documentation can be found\n`here `__.\n\nTODO\n^^^^\n\n- optimize update querysets with ``select_related`` and\n ``prefetch_related``\n\n.. |Build Status| image:: https://travis-ci.org/netzkolchose/django-computedfields.svg?branch=master\n :target: https://travis-ci.org/netzkolchose/django-computedfields\n.. |Coverage Status| image:: https://coveralls.io/repos/github/netzkolchose/django-computedfields/badge.svg?branch=master\n :target: https://coveralls.io/github/netzkolchose/django-computedfields?branch=master", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/netzkolchose/django-computedfields/archive/0.0.10.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/netzkolchose/django-computedfields", "keywords": "django,method,decorator,autoupdate,persistent,field", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-computedfields", "package_url": "https://pypi.org/project/django-computedfields/", "platform": "", "project_url": "https://pypi.org/project/django-computedfields/", "project_urls": { "Download": "https://github.com/netzkolchose/django-computedfields/archive/0.0.10.tar.gz", "Homepage": "https://github.com/netzkolchose/django-computedfields" }, "release_url": "https://pypi.org/project/django-computedfields/0.0.10/", "requires_dist": null, "requires_python": "", "summary": "autoupdated database fields for model methods", "version": "0.0.10" }, "last_serial": 4917274, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8a42d87581015b8ecdcba2f08281adea", "sha256": "e99e18d3c341a30af74424b4c1e6030323b0460bf8fc8b13d758b018f816971c" }, "downloads": -1, "filename": "django-computedfields-0.0.1.tar.gz", "has_sig": false, "md5_digest": "8a42d87581015b8ecdcba2f08281adea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427612, "upload_time": "2018-03-12T00:51:41", "url": "https://files.pythonhosted.org/packages/bd/53/8a19469be8c78a4687f45bf60135d8df2cec2575d747e492af2464adad47/django-computedfields-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "ca61906a84e4ac379f1deb769734c470", "sha256": "2f01e057926f55c6dcd4a5175387dbb5f0811af466189589ee2569d55deea697" }, "downloads": -1, "filename": "django-computedfields-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ca61906a84e4ac379f1deb769734c470", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427557, "upload_time": "2019-03-08T22:04:47", "url": "https://files.pythonhosted.org/packages/e0/f8/e26b9208e167dd064e34219f146bc3fac29286b28399fa4d908eb5b88335/django-computedfields-0.0.10.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1b460c68551da951d7b1734724d62f61", "sha256": "960b62c470911c7c33c43aa7583e352c2f8c0a160f37b74f42fb661d6e2347c8" }, "downloads": -1, "filename": "django-computedfields-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1b460c68551da951d7b1734724d62f61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427999, "upload_time": "2018-03-12T04:03:07", "url": "https://files.pythonhosted.org/packages/fb/41/42a3a2fda7a7d1356fd50b925040c693c9665e4ba7f54114cbfcd1115168/django-computedfields-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "389392c78a454f0c836b32dc126f4f4b", "sha256": "b8089a980f29e3112d63cbe9be60a53bd3dcaae4e413efbabb6f50256a5e0ccc" }, "downloads": -1, "filename": "django-computedfields-0.0.3.tar.gz", "has_sig": false, "md5_digest": "389392c78a454f0c836b32dc126f4f4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 428677, "upload_time": "2018-03-13T00:29:14", "url": "https://files.pythonhosted.org/packages/dd/90/9b0647674d3fcecaa1292d11cfa61d934a6b19a449f42d6477396515ca40/django-computedfields-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "b47169ef77112dc8692a67ea5863cd43", "sha256": "ec60c6b76049c500c80a12941604859db43f5534549b135d6dab73e1f263b621" }, "downloads": -1, "filename": "django-computedfields-0.0.4.tar.gz", "has_sig": false, "md5_digest": "b47169ef77112dc8692a67ea5863cd43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 429156, "upload_time": "2018-03-13T03:36:20", "url": "https://files.pythonhosted.org/packages/73/44/ff5c151f1ab6101db0bd817dc6e2771f58aa8115e4e8b3fc1d0a3b1d6a13/django-computedfields-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "22c1aed93ef1bbb4498231f3eddb1806", "sha256": "d6661cd347e3d1c9248ea18e15a976e34433d88a721199f70db35ca1ad4e38ee" }, "downloads": -1, "filename": "django-computedfields-0.0.5.tar.gz", "has_sig": false, "md5_digest": "22c1aed93ef1bbb4498231f3eddb1806", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427099, "upload_time": "2018-03-13T22:56:15", "url": "https://files.pythonhosted.org/packages/98/aa/901839e505f24c9d07912ab12746d8683f49827068ca3a09421735c7b36e/django-computedfields-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a7f61b19bf4e70ba9f5c0b46579188b1", "sha256": "8658db40acab85d2a926d2ed0f22238e3dc9d11794e3c2b850de988ffb307b28" }, "downloads": -1, "filename": "django-computedfields-0.0.6.tar.gz", "has_sig": false, "md5_digest": "a7f61b19bf4e70ba9f5c0b46579188b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 426990, "upload_time": "2018-03-14T15:17:46", "url": "https://files.pythonhosted.org/packages/ab/34/e944a3c1b3c53e4766aa42c4c529a7aa529e24ddb981e507e0cef35e7f7c/django-computedfields-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "496553fe0724b8eacacbff16b8e67e58", "sha256": "9903df8070abd4f98c05c11c78acd5d76602da870f2c548f84b9a8dc91133659" }, "downloads": -1, "filename": "django-computedfields-0.0.7.tar.gz", "has_sig": false, "md5_digest": "496553fe0724b8eacacbff16b8e67e58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427048, "upload_time": "2018-03-28T15:45:30", "url": "https://files.pythonhosted.org/packages/1c/95/21f197a9b80f9eb6cca460686e848972bfee8b91ec8d3a61b1637b6f2b23/django-computedfields-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "67145b541ff6a2414ebc9fd18bb4dd6a", "sha256": "5efb5ae7688b0fd9b3557b3d5636f6e8e6440ff11675bba47f007426c7c05e8b" }, "downloads": -1, "filename": "django-computedfields-0.0.8.tar.gz", "has_sig": false, "md5_digest": "67145b541ff6a2414ebc9fd18bb4dd6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427199, "upload_time": "2018-04-02T16:04:25", "url": "https://files.pythonhosted.org/packages/b5/2b/1353987d0ae65d2d4b5bcd092249eb7024a5ae1a4f2ada08455fc215c6e3/django-computedfields-0.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ca61906a84e4ac379f1deb769734c470", "sha256": "2f01e057926f55c6dcd4a5175387dbb5f0811af466189589ee2569d55deea697" }, "downloads": -1, "filename": "django-computedfields-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ca61906a84e4ac379f1deb769734c470", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427557, "upload_time": "2019-03-08T22:04:47", "url": "https://files.pythonhosted.org/packages/e0/f8/e26b9208e167dd064e34219f146bc3fac29286b28399fa4d908eb5b88335/django-computedfields-0.0.10.tar.gz" } ] }