Skip to main content

djust-admin

A modern, reactive Django admin interface powered by djust.

Status: Pre-Alpha - This project is in early development. APIs may change.

Features

  • Real-time search - Filter results as you type with debounced queries
  • Live sorting - Click columns to sort without page reload
  • Bulk actions - Select multiple items and perform actions
  • Instant feedback - Form validation and save feedback in real-time
  • Modern UI - Clean, responsive design with Tailwind CSS
  • Django compatible - Works with existing Django models and permissions

Installation

pip install djust-admin

Quick Start

1. Add to INSTALLED_APPS

INSTALLED_APPS = [
    # ...
    'djust',
    'djust_admin',
    # ...
]

2. Create admin configuration

# myapp/admin.py
from djust_admin import DjustModelAdmin, site

from .models import Article, Author

@site.register(Article)
class ArticleAdmin(DjustModelAdmin):
    list_display = ['title', 'author', 'published_date', 'status']
    list_filter = ['status', 'author']
    search_fields = ['title', 'content']
    ordering = ['-published_date']

@site.register(Author)
class AuthorAdmin(DjustModelAdmin):
    list_display = ['name', 'email', 'article_count']
    search_fields = ['name', 'email']

    def article_count(self, obj):
        return obj.articles.count()
    article_count.short_description = "Articles"

3. Add URLs

# urls.py
from django.urls import path, include
from djust_admin import site

urlpatterns = [
    # ... your other urls
    path('djust-admin/', include(site.urls)),
]

4. Configure ASGI (for WebSocket support)

# asgi.py
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from djust.websocket import LiveViewConsumer
from django.urls import path

application = ProtocolTypeRouter({
    "http": get_asgi_application(),
    "websocket": AuthMiddlewareStack(
        URLRouter([
            path('ws/live/', LiveViewConsumer.as_asgi()),
        ])
    ),
})

Configuration

DjustModelAdmin Options

class MyModelAdmin(DjustModelAdmin):
    # List view
    list_display = ['field1', 'field2']      # Fields to show in list
    list_filter = ['status', 'created_at']   # Filter sidebar
    search_fields = ['title', 'content']     # Searchable fields
    list_per_page = 25                       # Items per page
    ordering = ['-created_at']               # Default ordering

    # Detail view
    fields = ['field1', 'field2']            # Fields to show in form
    readonly_fields = ['created_at']         # Non-editable fields
    fieldsets = [                            # Group fields
        ('Basic Info', {'fields': ['title', 'slug']}),
        ('Content', {'fields': ['body']}),
    ]

    # Actions
    actions = ['publish', 'archive']         # Bulk actions

    def publish(self, request, queryset):
        queryset.update(status='published')
    publish.short_description = "Publish selected"

Custom Admin Site

from djust_admin import DjustAdminSite

class MyAdminSite(DjustAdminSite):
    site_header = "My Company Admin"
    site_title = "Admin Portal"
    index_title = "Welcome to the Admin"

admin_site = MyAdminSite(name='myadmin')

Comparison with Django Admin

Feature Django Admin djust-admin
Page reloads for actions Yes No (WebSocket)
Search On submit Real-time
Sorting Page reload Instant
Form validation On submit Real-time
Bulk selection Checkbox + submit Live state
JavaScript required ~150KB ~5KB

Roadmap

v0.1.0 (Current)

  • Basic model list view with search/sort/pagination
  • Model detail/edit view with form validation
  • Delete confirmation
  • Bulk actions (delete)
  • Filter sidebar

v0.2.0

  • Inline related objects
  • Foreign key autocomplete
  • File upload support
  • Custom actions with confirmation

v0.3.0

  • Dashboard widgets
  • Activity log
  • User preferences
  • Themes

Contributing

Contributions are welcome! Please see CONTRIBUTING.md.

License

MIT License - see LICENSE for details.

Metadata

Release files for djust-admin 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for djust-admin 0.3.0
File Size Uploaded
djust_admin-0.3.0.tar.gz 155.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for djust-admin 0.3.0
File Interpreter ABI Platform
djust_admin-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 190.1 kB

Release files / djust_admin-0.3.0.tar.gz

Download URL djust_admin-0.3.0.tar.gz
Size 155.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ab1f9823039bb495b703c61bac5a104312f84832d5966f913ed814871f7c59fe
BLAKE2b-256 checksum
How to use checksums
395e9d3ae7cfc90ea102e9d32c3ad8003e6f0b12dc7d768fdba9b98a541f8f04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 24, 2026.

Transparency log

Release files / djust_admin-0.3.0-py3-none-any.whl

Download URL djust_admin-0.3.0-py3-none-any.whl
Size 34.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd9acdcb6e30b622f5855fbae7309181408be91a8c25d60fd3dd0102a92ea01b
BLAKE2b-256 checksum
How to use checksums
a8401c282430d52e9a5166cbf7b19a7779ec6de249ad3d2cc10393d25cd0ab21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page