# Django SmartBase Admin
A modern, modular, and developer-friendly admin interface for Django.
Built to **speed up development** of internal tools and admin panels β beautifully and efficiently.
---
## β¨ Features
- Fast integration with any Django project
- Improved performance of Django List Admin using `SBAdminField`, database `annotate()` and `values()` to avoid direct object access
- Simple configuration of menu structure, dashboard components, and permissions per user role
- Enhanced Django List Admin filters: autocomplete support for related fields and filtering across all model fields
- Ability for users to save and reuse custom filters in Django List Admin
- Improved Django Detail Admin with autocomplete for relational fields
- Support for "FakeInlines" β define inline-like blocks without requiring a direct model relationship
- Easy extension of list and detail views with custom actions and corresponding views
- Beautiful modern UI (Tailwind CSS)
- Responsive & mobile-friendly
- End-user ready for building SaaS or similar projects with global queryset configuration
- Built-in audit logging β automatically tracks all admin create, update, and delete operations with full change history, snapshots, and request grouping
## π Full Documentation (in progress)
π [View Full Docs](https://smartbase-sk.github.io/django-smartbase-admin-docs/docs/installation)
## π Live Demo
Want to see it in action?
π [Check out the live demo](https://sbadmin.sbdev.sk/)
**Login credentials:**
- **Admin role**: `admin / admin`
- **Editor role**: `editor / editor`
## β‘ Quick Start
### 1. Install Smartbase Admin
Begin by installing the Smartbase Admin package using `pip`:
```bash
pip install django-smartbase-admin
```
Ensure that django-smartbase-admin and its dependencies are included in your Django settings. Open your `settings.py` file and add the following to `INSTALLED_APPS`:
```python
INSTALLED_APPS = [
# other apps
"django_smartbase_admin",
"easy_thumbnails",
"widget_tweaks",
"ckeditor",
"ckeditor_uploader",
]
```
### 2. Add Admin URL Configuration
In your projectβs `urls.py`, register the Smartbase Admin site by importing sb_admin_site and adding the path:
```python
from django_smartbase_admin.admin.site import sb_admin_site
urlpatterns = [
path("sb-admin/", sb_admin_site.urls),
# other paths
]
```
This makes the Smartbase Admin interface accessible at `/sb-admin/`
### 3. Define the SmartBase Admin Configuration
In your project, for example in `config` package create a file called `sbadmin_config.py` with the following content:
```python
from django_smartbase_admin.engine.configuration import SBAdminConfigurationBase, SBAdminRoleConfiguration
from django_smartbase_admin.views.dashboard_view import SBAdminDashboardView
from django_smartbase_admin.engine.menu_item import SBAdminMenuItem
config = SBAdminRoleConfiguration(
default_view=SBAdminMenuItem(view_id="dashboard"),
menu_items=[
SBAdminMenuItem(view_id="dashboard", icon="All-application"),
],
registered_views=[
SBAdminDashboardView(widgets=[], title="Dashboard"),
],
)
class SBAdminConfiguration(SBAdminConfigurationBase):
def get_configuration_for_roles(self, user_roles):
return config
```
### 4. Reference the Configuration in `settings.py`
```python
SB_ADMIN_CONFIGURATION = "config.sbadmin_config.SBAdminConfiguration"
```
### 5. Add Locale Middleware
Add the following middleware to support internationalization:
```python
MIDDLEWARE = [
# Other middleware...
'django.middleware.locale.LocaleMiddleware',
]
```
Enable Django i18n URLs so `{% url 'set_language' %}` is available for the navigation language picker:
```python
from django.urls import include, path
urlpatterns = [
path("i18n/", include("django.conf.urls.i18n")),
]
```
## π Audit Logging
Built-in optional audit app that automatically tracks all admin create, update, delete, and bulk operations with field-level diffs, snapshots, and request grouping. Just add `"django_smartbase_admin.audit"` to `INSTALLED_APPS` and run migrations.
See [AGENTS.md β Audit Logging](./AGENTS.md#audit-logging) for setup and configuration.
## π€ AI/Developer Reference
See [AGENTS.md](./AGENTS.md) for development patterns, gotchas, and AI assistant instructions.
## π€ Need Help with Development?
We at SmartBase are experts in Django and custom software.
Whether you're building a new platform or modernizing an internal tool β
π‘ We can help you design, build, and scale it.
π¬ [Let's talk](https://en.smartbase.sk/contact-us/) β We'd love to work with you.