Skip to main content

A package to generate CRUD endpoints for registered models with the Django-REST Framework.

Project description

DRF-Admin

A package to generate CRUD endpoints for registered models with the Django-REST Framework.

Requirements

Installation

To install run:

pip install drf-admin

Usage

  • Import restadmin in the admin.py
  • Call restadmin.site.register(Model) Model being the model to register
  • Add rest admin to your urls.py file

Prerequisite

  • rest_framework should be properly set up to use this package hitch free

A sample of it's configuration in the settings file:

 REST_FRAMEWORK={
            'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
            'TEST_REQUEST_RENDERER_CLASSES': [
                'rest_framework.renderers.MultiPartRenderer',
                'rest_framework.renderers.JSONRenderer',
                'rest_framework.renderers.TemplateHTMLRenderer', ],
            "DEFAULT_AUTHENTICATION_CLASSES": [
                'rest_framework.authentication.SessionAuthentication',
                'rest_framework.authentication.BasicAuthentication'
            ],
            "DEFAULT_PERMISSION_CLASSES": [
                'rest_framework.permissions.AllowAny',
            ]
        }

For example:

models.py

from django.db import models

class TestModel(models.Model):
    age = models.IntegerField()

admin.py

from .models import TestModel
import restadmin

restadmin.site.register(TestModel)

urls.py

from restadmin import site
from django.urls import path




urlpatterns = [
    ...
    path('restadmin/', site.urls),
    ...
]

Customization

This package allows you to specify the following when registering your model

  • serializer: A Model Serializer Class
  • permission_classes: A list of Permission classes
  • pagination_classs: A Pagination Class

An example of how a call to the register method with all 3 would look is :

restadmin.site.register(TestModel, serializer=AdminSerializer, permission_classes=[ReadOnly], 
                        pagination_class=LargeResultsSetPagination)

Endpoint Documentation

  • This requires you to have coreapi installed

A page to document the Endpoints generated can be accessed by adding the following to your base urls file

from restadmin import site


urlpatterns = [
   ...
    path('restadmin-docs/', site.docs)
    ...
]

Using this would require you to have your default schema Class set in your REST_FRAMEWORK config in your settings.py file E.g

REST_FRAMEWORK = { 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema' }

Run your server and you can find the documentation at http://127.0.0.1:8000/restadmin-docs NOTE: The Documentation page is restricted to staff only(is_staff has to be True)

Tests

To run the tests:

From the base directory run :

python load_tests.py

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

drf-admin-0.1.1.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

drf_admin-0.1.1-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

File details

Details for the file drf-admin-0.1.1.tar.gz.

File metadata

  • Download URL: drf-admin-0.1.1.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.9

File hashes

Hashes for drf-admin-0.1.1.tar.gz
Algorithm Hash digest
SHA256 129fe4cce4dc1bf28f43810bf8939403cf99a0a303a61c5ad2ddf9d4b3d452a9
MD5 da94bb9574c3992fc2ebca152c587f53
BLAKE2b-256 683a348a1cbf9f1ab34ab9ad9c21f6b7178971382f4e10e6756acc6367637b25

See more details on using hashes here.

File details

Details for the file drf_admin-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: drf_admin-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.9

File hashes

Hashes for drf_admin-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 209b6ca721406765c3567f7adcbe0cbc5471c665f136d8f059cf26b0a14faeb7
MD5 1ff2d748362df95e6dad479ed13e64c4
BLAKE2b-256 f01a8b258dfa6f8ba452d07a1c3e54786b7e953eef400ccf5f921e5e63cebae8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page