2026-04-16 –, AMPHITHEATRE
Django's built-in admin is powerful, but it's essentially a separate framework within Django and it's 20 years old.
Wouldn't it be nice to be able to work with an admin interface that works like the rest of Django, built on generic views, plugins, and view factories? This is the idea I explored: a proof-of-concept Django admin replacement, powered by pluggy and generic views, where CRUD operations are just actions, knowledge transfers both ways, and everything feels like Django.
Let's explore together the concepts and ideas behind it.
What if customizing Django's admin felt like writing any other Django view? Not just a cosmetic refresh, but a radically new approach relying on Django itself, factory-generated views and with a plugin-first design.
Talk Structure:
- The Problem Space (5 min)
- Django admin's 20-year legacy: what it got right and where it shows its age
- The extension dilemma: 3rd-party ecosystem and collisions between extensions
- Developer experience gap: different patterns for regular Django vs. admin
- Community feedback: recurring requests that would be hard to implement
- Architectural Foundations (7 min)
- View Factories: How views get generated dynamically
- Action System: Actions are the recipes followed by view factories
- Plugin Hooks: djp/pluggy integration and hook patterns
- Out-of-the-box enhancements
- Examples & Demo (8 min)
- Starting with familiar API: @register(Product) and list_display
- Customizing
list_display - Customizing
layout - Creating your own plugins
- Testing tools:
BaseCRUDTestCase - Demo (pre-recorded)
- Migration & Adoption (4 min)
- Running side-by-side with existing admin
- Early adopters (well-know projects that already have plugins)
- Extension compatibility matrix: no-effort, medium-effort, hard cases
- The Path Forward (2 min)
- What's next: roadmap and timeline
- Other potential benefits mid-term
- Call to action
Architecture, Django Internals, Django Admin
Audience Level:Intermediate
Long-time pythonista, PSF & DSF member, Django fan, electronics enthusiast, author of django-admin-deux and other OSS libraries
I am from Belgium and have been involved in open-source at different levels for about 20 years. I am a member of the Django Steering Council for the 6.x cycle.
One of the things I enjoy the most is sharing knowledge with others. And this is why I enjoy writing tutorials as well as giving talks and workshops.