django-api-admin
django-api-admin copied to clipboard
Expose django.contrib.admin as a restful service. useful for adding new features to django admin or writing a new admin client.
Expose django.contrib.admin as a restful service. useful for adding new features to django admin or writing a new admin.
Features ⚡
- [x] Expose all django.contrib.admin views as a restful api.
- [x] Similar to django.contrib.admin.
- [x] Customizable AdminSite and ModelAdmin.
- [x] Supports InlineModelAdmins and bulk edits.
- [x] Provides data to dynamically create forms on clients from serializers.
- [x] 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
- django-rest-framework
- django.contrib.admin
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 🖼
