{ "info": { "author": "Ramil Aglyautdinov", "author_email": "aglyautdinov@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "ExtendedQuerySets\n-----------------\n\nExtendedQuerySets is meant to simplify the way to retrieve **one** object from db using Django QuerySets.\n\n### Installation: ###\n```\n$ pip install extquerysets\n```\n\n### Examples: ###\n\nFor the following examples assume that we have a model **Player**, and we've implemented custom Manager and QuerySet for that model. \n\n\n**Task 1:** Retrieve one object or return None if object doesn't exist.\n\n*Usual way:* \n```python\ntry:\n winner = Player.objects.winner()\nexcept Player.DoesNotExist:\n winner = None\n```\n\n\n*Using ExtendedQuerySets:*\n```python\nwinner = Player.objects.winner_or_none()\n```\n\n**Task 2:** Retrieve one object or raise Http404 if object doesn't exist.\n\n*Usual way:* \n```python\ntry:\n winner = Player.objects.winner()\nexcept Player.DoesNotExist:\n raise Http404\n```\n\n\n*Using ExtendedQuerySets:*\n```python\nwinner = Player.objects.winner_or_404()\n```\n\n### Usage: ###\n\nmodels.py\n```python\nfrom django.db import models\n\nfrom .querysets import PlayerQuerySet\n\n\nclass Player(model.Model):\n name = models.CharField(_('Name'), max_length=12)\n is_winner = models.BooleanField(_('Is winner'), default=False)\n \n objects = PlayerQuerySet.as_manager()\n```\n\nquerysets.py\n```python\nfrom extquerysets.base import CustomQuerySet\nfrom extquerysets.decorators import or_404\nfrom extquerysets.decorators import or_none\n\n\nclass PlayerQuerySet(CustomQuerySet):\n @or_404\n @or_none\n def get(self, *args, **kwargs):\n return super().get(*args, **kwargs)\n\n @or_404\n @or_none\n def winner(self):\n return self.get(is_winner=True)\n```\n\nNow you can retrieve Player instance:\n```python\nfrom .models import Player\n\n...\n\nplayer = Player.objects.winner_or_none()\nplayer = Player.objects.winner_or_404()\nplayer = Player.objects.filter(name__icontains='Tom').winner_or_none()\nplayer = Player.objects.filter(name__icontains='Tom').winner_or_404()\nplayer = Player.objects.get_or_none(pk=10)\nplayer = Player.objects.get_or_404(pk=10)\n\n...\n```\n\n\n*More info about custom Managers and QuerySets:*\nhttps://docs.djangoproject.com/en/2.0/topics/db/managers/", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/rami_dk/extquerysets", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "extquerysets", "package_url": "https://pypi.org/project/extquerysets/", "platform": "", "project_url": "https://pypi.org/project/extquerysets/", "project_urls": { "Homepage": "https://bitbucket.org/rami_dk/extquerysets" }, "release_url": "https://pypi.org/project/extquerysets/0.0.4/", "requires_dist": null, "requires_python": "", "summary": "Extended QuerySets for Django", "version": "0.0.4" }, "last_serial": 4661333, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "51a3921112c5bd2cce7da54e183c0a84", "sha256": "b302496d9ea7f2b89ce9a92291aa9c86f94e0d1332517a423610338feabaca37" }, "downloads": -1, "filename": "extquerysets-0.0.3.tar.gz", "has_sig": false, "md5_digest": "51a3921112c5bd2cce7da54e183c0a84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3439, "upload_time": "2019-01-04T17:29:59", "url": "https://files.pythonhosted.org/packages/76/8e/63ecc8baddf1f61e44a4f88147a8db2f82bd74a0c469b7f736c5a9883560/extquerysets-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "4c7cf8fad2a9d00c0275cf1e7a856980", "sha256": "e4d1dc88e14413327b74ec3c4b907fee4d6071f5a760a867107ef515835c9cb1" }, "downloads": -1, "filename": "extquerysets-0.0.4.tar.gz", "has_sig": false, "md5_digest": "4c7cf8fad2a9d00c0275cf1e7a856980", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3478, "upload_time": "2019-01-04T18:51:51", "url": "https://files.pythonhosted.org/packages/4e/bf/2e64bf3909bc0049bea25c45eb5d87bd6b6a92da5a65ce90ff389db2024f/extquerysets-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4c7cf8fad2a9d00c0275cf1e7a856980", "sha256": "e4d1dc88e14413327b74ec3c4b907fee4d6071f5a760a867107ef515835c9cb1" }, "downloads": -1, "filename": "extquerysets-0.0.4.tar.gz", "has_sig": false, "md5_digest": "4c7cf8fad2a9d00c0275cf1e7a856980", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3478, "upload_time": "2019-01-04T18:51:51", "url": "https://files.pythonhosted.org/packages/4e/bf/2e64bf3909bc0049bea25c45eb5d87bd6b6a92da5a65ce90ff389db2024f/extquerysets-0.0.4.tar.gz" } ] }