Package: django-admin2
One of the most useful parts ofdjango.contrib.adminis 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/FeaturesRewrite of the Django Admin backendDrop-in themesBuilt-in RESTful APIRequirementsDjango 1.7+Python 2.7+ or Python 3.3+django-bracesdjango-extra-viewsdjango-rest-frameworkdjango-filterSphinx(for documentation)InstallationUse pip to install from PyPI:pipinstalldjango-admin2Add 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.pyINSTALLED_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.pyfromdjango.conf.urlsimportincludefromdjadmin2.siteimportdjadmin2_sitedjadmin2_site.autodiscover()urlpatterns=[...url(r'^admin2/',include(djadmin2_site.urls)),]How to write django-admin2 modules# myapp/admin2.py# Import your custom modelsfromdjango.contrib.auth.formsimportUserCreationForm,UserChangeFormfromdjango.contrib.auth.modelsimportUserfromdjadmin2.siteimportdjadmin2_sitefromdjadmin2.typesimportModelAdmin2from.modelsimportPost,CommentclassUserAdmin2(ModelAdmin2):# Replicates the traditional admin for django.contrib.auth.models.Usercreate_form_class=UserCreationFormupdate_form_class=UserChangeForm#  Register each model with the admindjadmin2_site.register(Post)djadmin2_site.register(Comment)djadmin2_site.register(User,UserAdmin2)Migrating from 0.6.xThe default theme has been updated to bootstrap3, be sure to replace your reference to the new one.Django rest framework also include multiple pagination system, the only one supported now is the PageNumberPagination.Therefore, yoursettingsneed to include this:# In settings.pyINSTALLED_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.pyfromdjango.conf.urlsimportincludefromdjadmin2.siteimportdjadmin2_sitedjadmin2_site.autodiscover()urlpatterns=[...url(r'^admin2/',include(djadmin2_site.urls)),]Migrating from 0.5.xThemes are now defined explicitly, including the default theme. Therefore, yoursettingsneed to include this:# In settings.pyINSTALLED_APPS+=('djadmin2.themes.djadmin2theme_default',)ADMIN2_THEME_DIRECTORY="djadmin2theme_default"Drop-In ThemesThe default theme is whatever bootstrap is most current. Specifically:# In settings.pyINSTALLED_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"Code of ConductEveryone interacting in the django-admin2 project’s codebases, issue trackers, chat
rooms, and mailing lists is expected to follow theJazzband Code of Conduct.Follows Best PracticesThis project follows best practices as espoused inTwo Scoops of Django: Best Practices for Django 1.8.History0.7.0 (2016-11-16)Fix Django 1.8 issues and add 1.9, 1.10 compatibilityUpdate django-rest-framework to 3.3.xRemove django-crispy-forms and django-floppyformsRegenerate example project to make it django 1.9 compatibleUpdate tox and travis and add flake8Rename AdminModel2Mixin to Admin2ModelMixinAdd migrationsremove south migrationsReplace IPAddressField with GenericIPAddressFieldFix password link in user adminFix user logout on password changeFix testsDrop support of django versions lower then 1.8Drop older url.patterns0.6.1 (2014-02-26)Fix empty form displayAdded more explicit installation instructionsAdded migration instructionsAdded view descriptions for “registry” and “app_verbose_names”Show a nice message and margin if there are no visible fieldsUpdated widget controls for Django 1.6 changes.Better error messages for admin views that fail to instantiateAdded png glyphicons to MANIFEST0.6.0 (2013-09-12)Implemented LogHistory to track recent historyNew system for adding new views to ModelAdmin2 objectFixed missing enctype=”multipart/form-data” functionalityImplemented “app verbose name”Apps can have customized namesList Actions can be set so they don’t require selecting a modelImplemented ModelAdmin2.orderingTo maintain API consistency, renamed views.AdminView’s “url” argument to “regex”Implemented ModelAdmin2.date_hierarchyChanged theming system to make default theme follow the same rules as third-party themes.Inlines now separated into stacked and tabular formatsCode coverage now displaying in READMEUser list page now showing all default columns and filtersVast documentation improvementsConverted todjango.utils.encoding.force_strinsteadunicodein order to type edge casessetup.py fix0.5.1 (2013-07-14)No longer pinning dependencies on specific versionsDocumentation on built-in viewsshows context variables.Added django-filter to dependency listProblem with related_name resolvedFixed the height of the change_formExample app actually shows added contentPull requests going forward areinternationalizedFAQbegun0.5.0 (2013-07-08)Implemented customizable value renderersImplemented list filters using django-filters. Greatly supersedes what Django provides.Implemented ModelAdmin2.save_on_top and ModelAdmin2.save_on_bottomImplemented BooleanField icons for List and Detail viewsImplemented defaultdjango.contrib.authanddjango.contrib.sitesregistrationsImplemented the displayed of verbose field/method names in list viewImplemented client-side ordering of model list fields in default themeImplemented improved internal naming conventionsImproved example project home pageImproved internal test coverageDocumentation for Context Variables in ThemesCorrected early nomenclature decisionsMuch improved InternationalizationAdded django-admin2 to TransifexTranslations for French, Polish, Slovak, Chinese, German, Catalan, Italian, and Spanish.0.4.0 (2013-06-30)Implemented both Function- and Class-based Action viewsImplemented ModelAdmin2.list_displayImplemented ModelAdmin2.fieldsetsDropdown widget now displays the selected choiceAdded support for callables in ModelAdmin2.list_displayAdded screenshots to READMEAdded second example projectFixed breadcrumbsDefault theme: Proper closing of template and media blocksDefault theme: Standardized indentation in default theme templatesDefault theme: Pointed to CDN for JQueryDefault theme: Added basic style for login formDefault theme: Internationalized all text strings0.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 controlsImplement 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.TestrunnerDocumentation0.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.