{ "info": { "author": "Alisue", "author_email": "lambdalisue@hashnote.net", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP" ], "description": "Watch modification of any type of field in Django's model and call registered callback function\n\nThis observer can watch\n\n- Any value type of field (CharField, IntegerField ...)\n- Any Model type of field (ForeignKey, OneToOneField, GenericForeignKey)\n- Any RelatedManager type of field (field automatically created via ``related_name`` of ForeignKey)\n- Any ManyRelatedManager type of field (ManyToManyField)\n- Any GenericRelatedObjectManager type of field (GenericRelation)\n- Any Model instance\n\n\nInstall\n==============\nThis library is on PyPI so you can install it with::\n\n pip install django-observer\n\nor from github::\n \n pip install git+https://github.com/lambdalisue/django-observer.git\n\n\nUsage\n==========\n\n>>> from django.db import models\n>>> from observer import watch\n>>> \n>>> class Entry(models.Model):\n... status = models.CharFiled('status', max_length=10)\n... body = models.CharField('title', max_length=100)\n... \n... def save(self, *args, **kwargs):\n... super(Entry, self).save(*args, **kwargs)\n... \n... # Watch callback, this is automatically called if `status` is **changed**\n... def watch_callback(sender, obj, attr):\n... # sender is a watcher instance\n... # obj is a instance of target\n... # attr is a name of target field\n... if obj.status == 'draft':\n... obj.title = \"draft - %s\" % obj.body\n... else:\n... obj.title = \"publish - %s\" % obj.body\n... # Start watching\n... self._watcher = watch(self, 'status', watch_callback)\n\nSee `observer_test/src/miniblog/blog/tests/test_observer.py `_ for more detail.\n\nSettings\n================\n\nOBSERVER_DEFAULT_WATCHER\n A class of watcher. Default is 'observer.watcher.complex.ComplexWatcher'", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/lambdalisue/django-observer/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lambdalisue/django-observer", "keywords": "django signals object field relation generic", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "django-observer", "package_url": "https://pypi.org/project/django-observer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-observer/", "project_urls": { "Download": "https://github.com/lambdalisue/django-observer/tarball/master", "Homepage": "https://github.com/lambdalisue/django-observer" }, "release_url": "https://pypi.org/project/django-observer/0.4.3/", "requires_dist": null, "requires_python": null, "summary": "Watch any object/field/relation/generic relation of django and recive signals", "version": "0.4.3" }, "last_serial": 1114857, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "9ea23b5af2b07a4125fa69bf4a223218", "sha256": "490433026ede95414463ff175721ed1a743f9f12452926d1dcc99ee10f3c7190" }, "downloads": -1, "filename": "django-observer-0.1.tar.gz", "has_sig": false, "md5_digest": "9ea23b5af2b07a4125fa69bf4a223218", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5087, "upload_time": "2011-12-22T17:20:29", "url": "https://files.pythonhosted.org/packages/1c/0c/62de519b76acfb57cf47713176aca8c0ee5ffa0a7b4b2471d64df5aaf7cb/django-observer-0.1.tar.gz" } ], "0.1rc2": [ { "comment_text": "", "digests": { "md5": "4a11e146e8b3806b598a1fc14fef96dc", "sha256": "25b3d3ff02c50dbace227ab821139c6322af7b8a46a797e13aa35474caa5ec8f" }, "downloads": -1, "filename": "django-observer-0.1rc2.tar.gz", "has_sig": false, "md5_digest": "4a11e146e8b3806b598a1fc14fef96dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5378, "upload_time": "2011-12-23T13:52:14", "url": "https://files.pythonhosted.org/packages/a5/87/fec94d1083e89321e2d8b2298155b1115796485afef2b1e4b6b6e26233ab/django-observer-0.1rc2.tar.gz" } ], "0.1rc3": [ { "comment_text": "", "digests": { "md5": "f9707e1633e7e044b459fff70b2edab0", "sha256": "b9342243059e7e68cbdd3bb8d825b92d03e31084308fc8dc9736824f94992912" }, "downloads": -1, "filename": "django-observer-0.1rc3.tar.gz", "has_sig": false, "md5_digest": "f9707e1633e7e044b459fff70b2edab0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5379, "upload_time": "2011-12-23T15:23:11", "url": "https://files.pythonhosted.org/packages/99/85/df8da018724953293dca213076fafa35efbc3a1c6e306a96dea20dc8c8d5/django-observer-0.1rc3.tar.gz" } ], "0.1rc4": [ { "comment_text": "", "digests": { "md5": "d10277ad3aa1df75cf5ca2b65607bafa", "sha256": "53c227c4463c323f3d219983e44e30236e3b3a208ac545e364cbe9106232d63b" }, "downloads": -1, "filename": "django-observer-0.1rc4.tar.gz", "has_sig": false, "md5_digest": "d10277ad3aa1df75cf5ca2b65607bafa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23453, "upload_time": "2011-12-23T16:02:17", "url": "https://files.pythonhosted.org/packages/21/83/99a7efc53e15b9bbc6b4841e87dcf0a3d8aaa9afb3f60accd970696e58f4/django-observer-0.1rc4.tar.gz" } ], "0.2rc1": [ { "comment_text": "", "digests": { "md5": "af810df947a76115c5ee106dcf53a397", "sha256": "efdd31e71fa642dc1792ac4e50bf99d15cb051d98857d53bffdb3ab28086e5a5" }, "downloads": -1, "filename": "django-observer-0.2rc1.tar.gz", "has_sig": false, "md5_digest": "af810df947a76115c5ee106dcf53a397", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24763, "upload_time": "2011-12-23T18:55:46", "url": "https://files.pythonhosted.org/packages/27/36/4baa48eb74d2003286257bb09827f26449576cc98e0a514a9370dae6c63b/django-observer-0.2rc1.tar.gz" } ], "0.3rc1": [ { "comment_text": "", "digests": { "md5": "ad7560f5a107e8eb1cfa6d12752d35a2", "sha256": "67f03e98a662d40ea183e1035d15311a5b6b8cbe332604faac76ed90b14c9090" }, "downloads": -1, "filename": "django-observer-0.3rc1.tar.gz", "has_sig": false, "md5_digest": "ad7560f5a107e8eb1cfa6d12752d35a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24888, "upload_time": "2012-01-02T15:13:05", "url": "https://files.pythonhosted.org/packages/9e/a7/bd9a8808beed6a07fbe93696df7c21b7d0f288b673af04b61dc01aa21e46/django-observer-0.3rc1.tar.gz" } ], "0.3rc2": [ { "comment_text": "", "digests": { "md5": "9b1b1102f20a7cb7357a4710fd6ef785", "sha256": "92b21c88efbd261d1d05b88b949c3b553502d2013770d7b140af2136553633bc" }, "downloads": -1, "filename": "django-observer-0.3rc2.tar.gz", "has_sig": false, "md5_digest": "9b1b1102f20a7cb7357a4710fd6ef785", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24929, "upload_time": "2012-01-02T17:01:52", "url": "https://files.pythonhosted.org/packages/13/cb/9fc35cf192f3e27bd6a36f773797fb119d83f34a4cbca0e513132703e1ed/django-observer-0.3rc2.tar.gz" } ], "0.3rc3": [ { "comment_text": "", "digests": { "md5": "181f394fa56dc421d64defc02213408a", "sha256": "5f6d378a592c51482ef6fd11f030922c38f29891dec67ca9a88d656372cdc6ec" }, "downloads": -1, "filename": "django-observer-0.3rc3.tar.gz", "has_sig": false, "md5_digest": "181f394fa56dc421d64defc02213408a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24896, "upload_time": "2012-01-02T17:06:53", "url": "https://files.pythonhosted.org/packages/ab/7c/693d273167c7dce2b4d233d4c8105930de7b60ad6784c31ba42cb979bc5b/django-observer-0.3rc3.tar.gz" } ], "0.3rc4": [ { "comment_text": "", "digests": { "md5": "12d735b5d92aff4c1b14e17a8ff11847", "sha256": "239f4071b42a90a65ce2ef401837666bf0fe0506d298a24e44fbeea000adf4b3" }, "downloads": -1, "filename": "django-observer-0.3rc4.tar.gz", "has_sig": false, "md5_digest": "12d735b5d92aff4c1b14e17a8ff11847", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25135, "upload_time": "2012-01-03T04:08:59", "url": "https://files.pythonhosted.org/packages/02/79/27b296a63b125f95def2d07789f995bb32bd0ca1f5a196c03e536f0d0bc2/django-observer-0.3rc4.tar.gz" } ], "0.3rc5": [ { "comment_text": "", "digests": { "md5": "9ee877f446fe018386927887c34f2ea4", "sha256": "51bffe96227aebb2f4f11cefa8a30f9c24264225fa7e1faaa3ea976135a9adf8" }, "downloads": -1, "filename": "django-observer-0.3rc5.tar.gz", "has_sig": false, "md5_digest": "9ee877f446fe018386927887c34f2ea4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19456, "upload_time": "2012-01-13T19:18:45", "url": "https://files.pythonhosted.org/packages/b0/35/e4982033c10b755daf6624921612a53cd332520af62c9bba4e261f02e4b8/django-observer-0.3rc5.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d971777ddc4bff82881720998772c2d5", "sha256": "b26ff91b1dc9615b5c8a337f78da362a0b60a7960d691867db542eb9a93b7963" }, "downloads": -1, "filename": "django-observer-0.4.0.tar.gz", "has_sig": false, "md5_digest": "d971777ddc4bff82881720998772c2d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19468, "upload_time": "2012-02-28T08:05:27", "url": "https://files.pythonhosted.org/packages/ec/03/40f78ed7b6b6a372c42ca4b6048504719e66846cec1abe82f87c0f015667/django-observer-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "a8f680e631c103e081c8f20385defa19", "sha256": "967857182281e424e2d3442ab90ff361c9f8a27fddae73d3de5bab0c7ddba1b0" }, "downloads": -1, "filename": "django-observer-0.4.1.tar.gz", "has_sig": false, "md5_digest": "a8f680e631c103e081c8f20385defa19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19267, "upload_time": "2012-02-28T08:30:51", "url": "https://files.pythonhosted.org/packages/e6/ed/4490cdd7eb5bd92472009d88877cd8d8b2bc34fd21f4983bf0ea084e0aa9/django-observer-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "699dc5bacbbd48a1e16bdd38abab74d5", "sha256": "6817021df56502acef37136de5b530ab3025edbf827c3e49412e791b013cb8bc" }, "downloads": -1, "filename": "django-observer-0.4.2.tar.gz", "has_sig": false, "md5_digest": "699dc5bacbbd48a1e16bdd38abab74d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7104, "upload_time": "2013-06-13T07:09:27", "url": "https://files.pythonhosted.org/packages/e7/5b/758d95768173276aac14602e4580694487670fe67cd20891d253402b06b4/django-observer-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "fe26550cbd8237aaccfff2d903855002", "sha256": "7760e5609bea5fe1340928f3160e368c6a444c94614a3058a6707768c0171791" }, "downloads": -1, "filename": "django-observer-0.4.3.tar.gz", "has_sig": false, "md5_digest": "fe26550cbd8237aaccfff2d903855002", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7368, "upload_time": "2014-06-05T04:01:07", "url": "https://files.pythonhosted.org/packages/c7/95/4e8d30e622af00055fd242833031e177476610db27d4385f6375752891bb/django-observer-0.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fe26550cbd8237aaccfff2d903855002", "sha256": "7760e5609bea5fe1340928f3160e368c6a444c94614a3058a6707768c0171791" }, "downloads": -1, "filename": "django-observer-0.4.3.tar.gz", "has_sig": false, "md5_digest": "fe26550cbd8237aaccfff2d903855002", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7368, "upload_time": "2014-06-05T04:01:07", "url": "https://files.pythonhosted.org/packages/c7/95/4e8d30e622af00055fd242833031e177476610db27d4385f6375752891bb/django-observer-0.4.3.tar.gz" } ] }