{ "info": { "author": "Alex Koshelev", "author_email": "daevaorn@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "License :: OSI Approved :: BSD License" ], "description": "`django-composition` provides the abstract way to denormalize data from your models in simple declarative way through special generic model field called `CompositionField`.\n\nMost cases of data denormalization are pretty common so `django-composition` has several \"short-cuts\" fields that handles most of them.\n\n## Base concept\n\n`CompositionField` is django model field that provides interface to data denormalization.\n\n`CompositionField` constructor params:\n - native - Django field instance for current compostion field\n - trigger - one or some numberr of triggers that handle composition.\n Trigger is a dict with allowed keys:\n - on - signal or list of signals that this field handles\n - do - signals handler, with 3 params:\n - related instance\n - instance (that comes with signal send)\n - concrete signal (one from `on` value)\n - field_holder_getter - function that gets instance(that comes with signal send)\\\n as parameter and returns field holder\n object (related instance)\n - sender - signal sender\n - sender_model - model instance or model name that send signal\n - commit - flag that indicates save instance after trigger appliance or not\n - commons - a trigger like field with common settings\n for all given triggers\n - update_method - dict for customization of update_method. Allowed params:\n - initial - initial value to field before applince of method\n - do - index of update trigger or trigger itself\n - queryset - query set or callable(with one param - `instance` of an holder model)\n that have to retun something iterable\n - name - custom method name instead of `update_FOO`\n\n## Short-cuts\n\nHere is the list of provided short-cut fields:\n\n - `ForeignAttributeField`\n\n - `ChildsAggregationField`\n\n - `AtributesAggregationField`", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/daevaorn/django-composition/", "keywords": null, "license": "New BSD License", "maintainer": null, "maintainer_email": null, "name": "django-composition", "package_url": "https://pypi.org/project/django-composition/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-composition/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://bitbucket.org/daevaorn/django-composition/" }, "release_url": "https://pypi.org/project/django-composition/0.2/", "requires_dist": null, "requires_python": null, "summary": "`django-composition` provides the abstract way to denormalize data from your models in simple declarative way through special generic model field called `CompositionField`", "version": "0.2" }, "last_serial": 789346, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "ece323cc472df4429f0c837d58c220c2", "sha256": "d25f933b942ac14fed157ed3ef47cf8b427cf51964f3e6745c3a7869cfad3af6" }, "downloads": -1, "filename": "django-composition-0.2.tar.gz", "has_sig": false, "md5_digest": "ece323cc472df4429f0c837d58c220c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7052, "upload_time": "2009-08-27T20:03:09", "url": "https://files.pythonhosted.org/packages/99/96/974ccd35623cf2d96096b029413e653f18ef8307df4a3ab8655e7978eead/django-composition-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ece323cc472df4429f0c837d58c220c2", "sha256": "d25f933b942ac14fed157ed3ef47cf8b427cf51964f3e6745c3a7869cfad3af6" }, "downloads": -1, "filename": "django-composition-0.2.tar.gz", "has_sig": false, "md5_digest": "ece323cc472df4429f0c837d58c220c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7052, "upload_time": "2009-08-27T20:03:09", "url": "https://files.pythonhosted.org/packages/99/96/974ccd35623cf2d96096b029413e653f18ef8307df4a3ab8655e7978eead/django-composition-0.2.tar.gz" } ] }