Autogenerate API's for models. Expose core Django functionality. Validate against existing forms.
Project description
DRFE generates RESTful API’s for any Django models. It builds on Django Rest Framework.
Prerequisite
pip install djangorestframework
Add rest_framework to your INSTALLED_APPS setting in settings.py.
Installation
Install or add djangorestframework-extras to your Python path.
Add rest_framework_extras to your INSTALLED_APPS setting in settings.py.
Feature List
Generating default serializers and viewsets for all known applications to create RESTful API’s.
Registering all viewsets known to the application with the Django Rest Framework router.
Custom serializers and permissions for the default user, the staff users and superusers.
Custom FormMixin that Delegates validation to a normal Django form.
Custom Hyperlink fields and serializer, HyperlinkedRelatedField and HyperlinkedModelSerializer
Usage
User permissions and the custom UsersViewSet
djangorestframework-extras provides a custom ViewSet UsersViewSet with serializers and permissions for the default user, the staff user and the superuser.
Register UsersViewSet through the DefaultRouter:
from rest_framework_extras.users.viewsets import UsersViewSet router = routers.DefaultRouter() router.register(r'users', UsersViewSet, 'user')
Discovery and registration of ViewSets
Enable discovery and registration of default serializers and viewsets by adding the following to urls.py:
from rest_framework import routers import rest_framework_extras router = routers.DefaultRouter() rest_framework_extras.discover(router) rest_framework_extras.register(router) urlpatterns = [ url(r"^api/(?P<version>(v1))/", include(router.urls)) ]
Going through the code line by line:
Line 1 & 3: The router and DefaultRouter classes connects the views and urls automatically and also creates the API root.
Line 5: The new discover function generates default serializers and viewsets. This function should be run before normal registration.
Line 6: The new register function registers all viewsets (including the UsersViewSet), overriding any items already registered with the same name.
Line 9: Define the urls by including router.urls.
Available Settings
REST_FRAMEWORK_EXTRAS
blacklist: A dictionary of the models to blacklist. By default the following models are blacklisted:
"REST_FRAMEWORK_EXTRAS": { "blacklist": { "sessions-session": {}, "admin-logentry": {} }, "authentication-classes": (SessionAuthentication, BasicAuthentication), "permission-classes": (DjangoModelPermissions,) }
Tips
Change the name of the registered user model by changing the mapping parameter, such as:
rest_framework_extras.register(router, mapping=(("user", UsersViewSet),))
Restrict models that will be displayed through the Django Rest Framework by using the only and override parameters. Define a comma separated list, such as:
rest_framework_extras.discover(router, only=["auth-user", "auth-permission"])
todo: document override
Unit Testing
Run tests by using the following command:
python manage.py test rest_framework_extras.tests --settings=rest_framework_extras.tests.settings.19
License
Please see the License requirements in the LICENSE file of this repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file djangorestframework-extras-0.2.1.tar.gz
.
File metadata
- Download URL: djangorestframework-extras-0.2.1.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cc1ae8883934db64bf82fb5b68b7f10741c0846d657b9ca3c67502a6c496257 |
|
MD5 | 4a8652942b68e2251429aaa8500335eb |
|
BLAKE2b-256 | 8c7833909bb117f22cd68090b5b24f21830c1322c9ad9fe9c5fe7a2d5188f856 |
File details
Details for the file djangorestframework_extras-0.2.1-py2.7.egg
.
File metadata
- Download URL: djangorestframework_extras-0.2.1-py2.7.egg
- Upload date:
- Size: 37.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b215bb1e3164087c8b48c8d7ccdeb12a9f8b8a7c1539e60e097d96f1a82a9abd |
|
MD5 | 7df43b5f682b76708b62e24c7fe4d763 |
|
BLAKE2b-256 | 2ad6ec1b98bcd3b0334297b1c08d6b4a230f0d34b6070cc6994f68a9e5d70fe2 |