{ "info": { "author": "Zowie Langdon", "author_email": "zowie@akoten.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3.3" ], "description": "# drf-nested-decorator\n\nA decorator that allows view actions to be nested and seeks to be integrated into DRF after proper tests are written.\n\nI didn't try to create a lot of new stuff, i just edited the SimpleRouter and added a decorator\n\n**Use at own risk.** No tests yet! 'Works for me' though.. :)\n\nI've created this functionality because i was in need, and will try to add tests and better organisation to it when i have time.\nWant to use it? Star so i know there's someone else besides me that will benefit from my efforts.\n\n## Usage\n\nmy_app/views.py\n\n from drf_nested_decorator.decorator import nested_detail_route\n from rest_framework.response import Response\n from rest_framework.permissions import IsAuthenticated\n from my_users.permission_classes import ActuallyOwnsCard, IsAwesome\n from my_users.serializers import CardSerializer\n from my_users.models import Card\n\n class MyUserViewSet(mixins.RetrieveModelMixin, mixins.ListModelMixin, GenericViewSet):\n\n authentication_classes = (SessionAuthentication, )\n permission_classes = (IsAuthenticated, )\n queryset = MyUser.objects.all()\n serializer_class = MyUserSerializer\n\n\n @nested_detail_route(['DELETE'], url_path='cards', permission_classes=(IsAwesome, ActuallyOwnsCard) + permission_classes)\n def nested_cards(self, request, pk=None, nested_pk=None)\n serializer = CardSerializer(Card.objects.get(pk=nested_pk))\n return Response(serializer.data)\n\nurls.py\n\n from drf_nested_decorator.routers import NestedDecoratorSimpleRouter\n from my_app.views import MyUserViewSet\n\n router = NestedDecoratorSimpleRouter()\n router.register(r'myuser', MyUserViewSet, base_name=\"myuser\")\n\n\n## To do:\n\n- Add tests, for everything (no decorator tests in DRF found, find or create)\n- Test with other packages like drf-nested-routers and drf-extensions\n- No formal parameter nested_lookup on decorated method supplied ->> good error message\n- Find out from what lower version this is supported, I'm using 3.1.3.\n- Automatic lookup of nested model through a nested_queryset?\n\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/luminum-solutions/drf-nested-decorator", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "drf-nested-decorator", "package_url": "https://pypi.org/project/drf-nested-decorator/", "platform": "", "project_url": "https://pypi.org/project/drf-nested-decorator/", "project_urls": { "Homepage": "https://github.com/luminum-solutions/drf-nested-decorator" }, "release_url": "https://pypi.org/project/drf-nested-decorator/0.5/", "requires_dist": [ "djangorestframework (>=3.1.3)" ], "requires_python": "", "summary": "An extra decorator for Django Rest Framework that allows methods of a viewset to accept a nested key.", "version": "0.5" }, "last_serial": 2953253, "releases": { "0.2": [], "0.3": [ { "comment_text": "", "digests": { "md5": "7dab96e002afe79ab7ab42c38db2d9d1", "sha256": "7bd0060330877a84726061dc0c6ba1d3c38221bcac07a4b6808b6dde6321941b" }, "downloads": -1, "filename": "drf_nested_decorator-0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "7dab96e002afe79ab7ab42c38db2d9d1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6465, "upload_time": "2017-06-15T21:57:07", "url": "https://files.pythonhosted.org/packages/05/8a/c01d712863e8c11d219bbe3c4b8e497f85d53f812c5706d4e81148b04e97/drf_nested_decorator-0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d97d1ee936921e4109eb2f9b68a5de3d", "sha256": "4a73d66f3f46e13b10c2c1b3c8f2f797d2a80f5307bd60a8c76228f6128b7ac3" }, "downloads": -1, "filename": "drf-nested-decorator-0.3.tar.gz", "has_sig": false, "md5_digest": "d97d1ee936921e4109eb2f9b68a5de3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3525, "upload_time": "2015-07-13T14:03:11", "url": "https://files.pythonhosted.org/packages/18/67/76167f5346b55c7584d9d7b8e3c2a574d1de7cf5e0564307fedc8abf68c4/drf-nested-decorator-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "2856d1d1efd85299b835b19986a317dc", "sha256": "aa0990c7595750501a069885fe7d0ed631e1125869b39a186cffb692c28698ad" }, "downloads": -1, "filename": "drf_nested_decorator-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2856d1d1efd85299b835b19986a317dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6467, "upload_time": "2017-06-15T21:57:59", "url": "https://files.pythonhosted.org/packages/3e/a1/de7208367d3377ab1b119e0ffb6d0f3e52ee695b3243d93a7f1bcd9f848f/drf_nested_decorator-0.4-py3-none-any.whl" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "06024b18932f1a14bf17cdfd37987ebe", "sha256": "3bb5483fec728f051c69343322b84a69b447ddabc7a40f572e10bb2ce49bfd3d" }, "downloads": -1, "filename": "drf_nested_decorator-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "06024b18932f1a14bf17cdfd37987ebe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6502, "upload_time": "2017-06-15T22:09:49", "url": "https://files.pythonhosted.org/packages/53/9b/f8382afd9bbf7e5c092b3d3fec0dc32220ae32329f6c90937285c2dbcdd3/drf_nested_decorator-0.5-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "06024b18932f1a14bf17cdfd37987ebe", "sha256": "3bb5483fec728f051c69343322b84a69b447ddabc7a40f572e10bb2ce49bfd3d" }, "downloads": -1, "filename": "drf_nested_decorator-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "06024b18932f1a14bf17cdfd37987ebe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6502, "upload_time": "2017-06-15T22:09:49", "url": "https://files.pythonhosted.org/packages/53/9b/f8382afd9bbf7e5c092b3d3fec0dc32220ae32329f6c90937285c2dbcdd3/drf_nested_decorator-0.5-py3-none-any.whl" } ] }