One of the most useful parts of django.contrib.admin
is the ability to configure various views that touch and alter data. django-admin2 is a complete rewrite of that library using modern Class-Based Views and enjoying a design focused on extendibility and adaptability. By starting over, we can avoid the legacy code and make it easier to write extensions and themes.
- Rewrite of the Django Admin backend
- Drop-in themes
- Built-in RESTful API
- Django 1.5+
- Python 2.7+ or Python 3.3+
- django-braces
- django-extra-views
- django-floppyforms
- django-rest-framework
- Sphinx (for documentation)
Use pip to install from PyPI:
pip install django-admin2
Add djadmin2 and rest_framework to your settings file:
INSTALLED_APPS = (
...
'djadmin2',
'rest_framework', # for the browsable API templates
...
)
Add djadmin2 urls to your URLconf:
# urls.py
from django.conf.urls import patterns, include
import djadmin2
djadmin2.default.autodiscover()
urlpatterns = patterns(
...
url(r'^admin2/', include(djadmin2.default.urls)),
)
# myapp/admin2.py
# Import your custom models
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.models import User
from .models import Post, Comment
import djadmin2
class UserAdmin2(djadmin2.ModelAdmin2):
# Replicates the traditional admin for django.contrib.auth.models.User
create_form_class = UserCreationForm
update_form_class = UserChangeForm
# Register each model with the admin
djadmin2.default.register(Post)
djadmin2.default.register(Comment)
djadmin2.default.register(User, UserAdmin2)
The default theme is whatever bootstrap is most current. Specifically:
# settings.py
ADMIN2_THEME_DIRECTORY = "admin2/bootstrap/"
If you create a new theme, you define it thus:
# settings.py
ADMIN2_THEME_DIRECTORY = "admin2/foundation/"
0.4.0 (2013-06-30)
- Implemented both Function- and Class-based Action views
- Implemented ModelAdmin2.list_display
- Implemented ModelAdmin2.fieldsets
- Dropdown widget now displays the selected choice
- Added support for callables in ModelAdmin2.list_display
- Added screenshots to README
- Added second example project
- Fixed breadcrumbs
- Default theme: Proper closing of template and media blocks
- Default theme: Standardized indentation in default theme templates
- Default theme: Pointed to CDN for JQuery
- Default theme: Added basic style for login form
- Default theme: Internationalized all text strings
0.3.0 (2013-05-31)
- HTML5 forms via floppyforms.
- Many API improvements.
- Added Breadcrumbs.
- Added Login, Logout, ChangePassword views.
- Added Actions.
- Added support for inlines.
- Added view based permission controls
- Implement delete confirmations for child models.
- Testrunner now can run on a specific test set or module.
- Internal code refactoring to follow standards.
- Moved to git-flow for accepting pull requests.
- Model create/update pages now have save options.
- Added i18n to all templates, much of internal code.
- All print statements replaced with proper logging.
- Design goals specified in the documentation.
0.2.0 (2013-05-19)
- Birth! (Working Prototype)
- Easy-to-extend API that follows similar patterns to django.contrib.admin.
- Built-in RESTFUL API powered by django-rest-framework.
- Default theme built on Twitter Bootstrap.
- Easy to implement theme system.
- Basic permission controls.
- Testrunner
- Documentation
0.1.1 (2013-05-17)
- Code adoption from django-mongonaut.
- Preperation for Django Circus sprints.
0.1 (2013-05-13)
- Discussion with Russell Keith-Magee.
- Inception.