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.
Full Documentation at: https://django-admin2.readthedocs.io/
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 setting for apps and the default theme in your settings file:
# In settings.py INSTALLED_APPS += ('djadmin2.themes.djadmin2theme_bootstrap3',) REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 10 } ADMIN2_THEME_DIRECTORY = "djadmin2theme_bootstrap3"
Add djadmin2 urls to your URLconf:
# urls.py from django.conf.urls import include from djadmin2.site import djadmin2_site djadmin2_site.autodiscover() urlpatterns = [ ... url(r'^admin2/', include(djadmin2_site.urls)), ]How to write django-admin2 modules
# myapp/admin2.py # Import your custom models from django.contrib.auth.forms import UserCreationForm, UserChangeForm from django.contrib.auth.models import User from djadmin2.site import djadmin2_site from djadmin2.types import ModelAdmin2 from .models import Post, Comment class UserAdmin2(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_site.register(Post) djadmin2_site.register(Comment) djadmin2_site.register(User, UserAdmin2)
Therefore, your settings need to include this:
# In settings.py INSTALLED_APPS += ('djadmin2.themes.djadmin2theme_bootstrap3',) ADMIN2_THEME_DIRECTORY = "djadmin2theme_bootstrap3" REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 10 }
The default admin2 site has move into djadmin2.site make sure your use the news djadmin2_site in your urls.py:
# urls.py from django.conf.urls import include from djadmin2.site import djadmin2_site djadmin2_site.autodiscover() urlpatterns = [ ... url(r'^admin2/', include(djadmin2_site.urls)), ]
Themes are now defined explicitly, including the default theme. Therefore, your settings need to include this:
# In settings.py INSTALLED_APPS += ('djadmin2.themes.djadmin2theme_default',) ADMIN2_THEME_DIRECTORY = "djadmin2theme_default"
The default theme is whatever bootstrap is most current. Specifically:
# In settings.py INSTALLED_APPS += ('djadmin2.themes.djadmin2theme_bootstrap3',) ADMIN2_THEME_DIRECTORY = "djadmin2theme_bootstrap3"
If you create a new theme, you define it thus:
# In settings.py # Mythical theme! This does not exit... YET! INSTALLED_APPS += ('djadmin2theme_foundation',) ADMIN2_THEME_DIRECTORY = "djadmin2theme_foundation"
Everyone interacting in the django-admin2 project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the Jazzband Code of Conduct.
This project follows best practices as espoused in Two Scoops of Django: Best Practices for Django 1.8.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4