django-api-admin

Expose django.contrib.admin as a restful service. useful for adding new features to django admin or writing a new admin.


Keywords
django, django-admin, django-api-admin, django-rest-framework, python
License
MIT
Install
pip install django-api-admin==1.1.6

Documentation

Expose django.contrib.admin as a restful service. useful for adding new features to django admin or writing a new admin.

Features âš¡

  • Expose all django.contrib.admin views as a restful api.
  • Similar to django.contrib.admin.
  • Customizable AdminSite and ModelAdmin.
  • Supports InlineModelAdmins and bulk edits.
  • Provides data to dynamically create forms on clients from serializers.
  • Extensively tested

Demo 🚀

You can also test it in this demo that is hosted on replit. use these credentials to login

  • username: admin
  • password: password

Requirements 📄

Python 3.9+

This package depends on

Installation 📲

Install django-api-admin package.

$ pip install django-api-admin

In your settings.py make sure you have django.contrib.admin and rest_framework in your installed apps. and add django_api_admin.

INSTALLED_APPS = [
    'django.contrib.admin',
    'rest_framework',
    'django_api_admin',
]

Example 💡

1. create some models.

models.py

from django.db import models


class Author(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name


class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

2. register them using the admin site.

admin.py

from django_api_admin.sites import site
from .models import Author, Book

site.register(Author)
site.register(Book)

3. include admin urls.

urls.py

from django_api_admin.sites import site

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

4. run your development server.

$ python manage.py runsever

visit your localhost to see the browsable api.

Screenshots 🖼

browsable_api_root