{ "info": { "author": "Hang Park", "author_email": "hangpark@kaist.ac.kr", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only" ], "description": "# django-multi-db-relation\n\n> Queryset optimization supports for multi database spanning relations between Django models.\n\n## Requirements\n\n- Python (>= 3.5)\n- Django (>= 1.10)\n\n## Installation\n\n```sh\npip install django-multi-db-relation\n```\n\n## Usage\n\nFor models\n\n```python\nclass ModelA(models.Model):\n name = models.CharField(max_length=10)\n\nclass ModelB(models.Model):\n a = models.ForeignKey(ModelA, on_delete=models.DO_NOTHING)\n\nclass ModelC(models.Model):\n b = models.ForeignKey(ModelB, on_delete=models.DO_NOTHING, db_constraint=False)\n```\n\nsuppose that `ModelA` and `ModelB` is routed to `db1` and `ModelC` to `db2`.\n\nWe **cannot** run a queryset with `select_related()`.\n\n```python\n>>> ModelC.objects.select_related('b') # Table not found\n```\n\nIn this case, modify `ModelC` like:\n\n```python\nfrom multi_db_relation.mixins import ExternalDbQuerySetMixin\n\n\nclass ModelCQuerySet(ExternalDbQuerySetMixin, models.QuerySet):\n pass\n\nclass ModelC(models.Model):\n b = models.ForeignKey(ModelB, on_delete=models.DO_NOTHING, db_constraint=False)\n\n objects = models.Manager.from_queryset(queryset_class=ModelCQuerySet)()\n\n class Meta:\n external_db_fields = ['b']\n```\n\nthen:\n\n```python\n>>> ModelC.objects.select_related('b') # Number of queries is optimized from O(n) to O(1)\n>>> ModelC.objects.select_related('b__a') # Also works well\n```\n\n## License\n\n- See [LICENSE](LICENSE)\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hangpark/django-multi-db-relation", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-multi-db-relation", "package_url": "https://pypi.org/project/django-multi-db-relation/", "platform": "", "project_url": "https://pypi.org/project/django-multi-db-relation/", "project_urls": { "Homepage": "https://github.com/hangpark/django-multi-db-relation" }, "release_url": "https://pypi.org/project/django-multi-db-relation/0.1/", "requires_dist": [ "Django (>=1.10)" ], "requires_python": ">=3.5", "summary": "Django query optimization supports for multi db relations.", "version": "0.1" }, "last_serial": 3644081, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "3b655b9dbe1a557dd86ce8a248df734a", "sha256": "289f9535f6e0fd9e52a8f0f4ba24f954696031ca7f9e07cedafd5be50ae63d7e" }, "downloads": -1, "filename": "django_multi_db_relation-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3b655b9dbe1a557dd86ce8a248df734a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4744, "upload_time": "2018-03-06T13:47:49", "url": "https://files.pythonhosted.org/packages/31/3c/77c0dcee5d9bcf7bd66a894eff421dd1b5862f8a7ecac35f42b633383636/django_multi_db_relation-0.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3b655b9dbe1a557dd86ce8a248df734a", "sha256": "289f9535f6e0fd9e52a8f0f4ba24f954696031ca7f9e07cedafd5be50ae63d7e" }, "downloads": -1, "filename": "django_multi_db_relation-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3b655b9dbe1a557dd86ce8a248df734a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4744, "upload_time": "2018-03-06T13:47:49", "url": "https://files.pythonhosted.org/packages/31/3c/77c0dcee5d9bcf7bd66a894eff421dd1b5862f8a7ecac35f42b633383636/django_multi_db_relation-0.1-py3-none-any.whl" } ] }