{ "info": { "author": "Daniel Ivanov", "author_email": "megaden4eg@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "# DRF Shortcuts\n\n[![Build Status](https://travis-ci.org/megaden/drf-shortcuts.svg?branch=master)](https://travis-ci.org/megaden/drf-shortcuts)\n[![PyPI Version](https://img.shields.io/pypi/v/drf_shortcuts.svg)](https://img.shields.io/pypi/v/drf_shortcuts.svg)\n\nShortcuts for speeding up your development based on Django REST Framework (DRF).\n\n## Overview\n\nDRF shortcuts library allows you to:\n\n- Expose your Django model class using a one-liner `register_standard_endpoint(your_router, YourModel)`. Exposed API endpoint will support search & ordering of items for suitable fields (backed up by `SearchFilter` & `OrderingFilter` filter backends) and will be nicely documented in both Browseable API & upon issuing `OPTIONS` requests against it.\n- Create `rest_framework.viewsets.ModelViewSet` based viewset class for your Django model using a one-liner `create_standard_viewset_class(YourModel)`. Viewset capabilities will be similar to the one registered using `register_standard_endpoint` shortcut.\n- Create JS-based clients friendly serializer class for your Django model using a one-liner `create_standard_serializer_class(YourModel)`.\n- Use library classes & helper functions to tailor your own DRF shortcuts.\n\n## Requirements\n\n- Python 3.6+\n- Django 2.0+\n- Django REST Framework 3.8+\n\n## Installation\n\nInstall using pip:\n\n pip install drf-shortcuts\n\n## Examples\n\nExposing a Django model:\n\n # in urls.py\n\n from rest_framework.routers import DefaultRouter\n from drf_shortcuts.urls import register_standard_endpoint\n\n from my_fancy_app.models import MyModel\n\n\n router = DefaultRouter()\n\n register_standard_endpoint(router, MyModel)\n\n # ... more URL configuration code here ...\n\n urlpatterns = router.urls\n\nCreating a viewset class:\n\n # in views.py\n\n from drf_shortcuts.views import create_standard_viewset_class\n\n from my_fancy_app.models import MyModel\n\n MyModelViewSet = create_standard_viewset_class(MyModel)\n\nCreating a serializer class:\n\n # in serializers.py\n\n from drf_shortcuts.serializers import create_standard_serializer_class\n\n from my_fancy_app.models import MyModel\n\n MyModelSerializer = create_standard_serializer_class(MyModel)\n\nCustomizing a view using helpers:\n\n # in views.py\n\n from rest_framework.viewsets import ReadOnlyModelViewSet\n from drf_shortcuts.views import append_search_info_to_docstring\n from drf_shortcuts.serializers import create_standard_serializer_class\n\n from my_fancy_app.models import MyModel\n\n\n @append_search_info_to_docstring\n class MyModelViewSet(ReadOnlyModelViewSet):\n serializer_class = create_standard_serializer_class(MyModel)\n\n # ... rest of the view code ...\n\n## Documentation\n\nVisit [project's GitHub Pages](https://megaden.github.io/drf-shortcuts/).", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/megaden/drf-shortcuts", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "drf_shortcuts", "package_url": "https://pypi.org/project/drf_shortcuts/", "platform": "", "project_url": "https://pypi.org/project/drf_shortcuts/", "project_urls": { "Homepage": "https://github.com/megaden/drf-shortcuts" }, "release_url": "https://pypi.org/project/drf_shortcuts/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "Common shortcuts for speeding up your development based on Django REST Framework (DRF).", "version": "0.0.2" }, "last_serial": 4584346, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "fbe398d4f3b1180c92802f338f7ac0e9", "sha256": "3a7a991977ae6d586b2dbe0c8936cafd4dbfde555df626c979d42a0b79540df9" }, "downloads": -1, "filename": "drf_shortcuts-0.0.1.tar.gz", "has_sig": false, "md5_digest": "fbe398d4f3b1180c92802f338f7ac0e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3952, "upload_time": "2018-06-13T13:32:59", "url": "https://files.pythonhosted.org/packages/40/a6/c8257eb166eaed611b7fb6e13f43763da11a9a9e94777b9bcb8859e72183/drf_shortcuts-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "a8988cbcb31654dffdb1c84bb7bb5be2", "sha256": "0024bc85bb5baf91b86b9b38ebaed784b8755d721a10dae2aa1332f50c312b35" }, "downloads": -1, "filename": "drf_shortcuts-0.0.2.tar.gz", "has_sig": false, "md5_digest": "a8988cbcb31654dffdb1c84bb7bb5be2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7537, "upload_time": "2018-12-11T08:36:00", "url": "https://files.pythonhosted.org/packages/ad/70/d89c637b55988a88a5392a22ab4347caf33b830777a68980cd54d6f13395/drf_shortcuts-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a8988cbcb31654dffdb1c84bb7bb5be2", "sha256": "0024bc85bb5baf91b86b9b38ebaed784b8755d721a10dae2aa1332f50c312b35" }, "downloads": -1, "filename": "drf_shortcuts-0.0.2.tar.gz", "has_sig": false, "md5_digest": "a8988cbcb31654dffdb1c84bb7bb5be2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7537, "upload_time": "2018-12-11T08:36:00", "url": "https://files.pythonhosted.org/packages/ad/70/d89c637b55988a88a5392a22ab4347caf33b830777a68980cd54d6f13395/drf_shortcuts-0.0.2.tar.gz" } ] }