Django Admin Extensions
pip install django-admin
- Disable Action
from django.contrib import admin from django_admin import DeleteModelAdmin # Override ``delete_selected``, call ``delete_model`` for each when ``delete_selected`` class XXXAdmin(admin.ModelAdmin, DeleteModelAdmin): def delete_model(self, request, obj): obj.delete() # Other Codes # Reopen action ``delete_selected`` after ``admin.site.disable_action('delete_selected')`` class YYYAdmin(admin.ModelAdmin): actions = ['delete_selected'] # Disable ``actions`` class ZZZAdmin(admin.ModelAdmin): actions = None
- Export Excel
from django.contrib import admin from django_admin import ExportExcelModelAdmin, AdvancedExportExcelModelAdmin class XXXAdmin(ExportExcelModelAdmin, admin.ModelAdmin): pass class YYYAdmin(AdvancedExportExcelModelAdmin, admin.ModelAdmin): excel_headers = () excel_fields = () excel_fields_exclude = () extra_excel_fields = () def add_extra_excel_fields(self, request, query): return []
- All Fields Readonly
from django.contrib import admin from django_admin import ReadonlyModelAdmin, Readonly2ModelAdmin class XXXAdmin(ReadonlyModelAdmin, admin.ModelAdmin): """ Readonly for Update. """ pass class XXXAdmin(Readonly2ModelAdmin, admin.ModelAdmin): """ Readonly for Add/Update. """ pass
- Disable Editing
from django.contrib import admin from django_admin import ReadOnlyModelAdmin class XXXAdmin(ReadOnlyModelAdmin, admin.ModelAdmin): pass
- Should add
django_admin
inINSTALLED_APPS
INSTALLED_APPS = [ ... 'django_admin', ... ]
- Should add
- Disable Add/Delete
from django.contrib import admin from django_admin import ChangeOnlyModelAdmin class XXXAdmin(ChangeOnlyModelAdmin, admin.ModelAdmin): pass
- Disable Add/Change
from django.contrib import admin from django_admin import DeleteOnlyModelAdmin, DeleteonlyModelAdmin class XXXAdmin(DeleteOnlyModelAdmin, admin.ModelAdmin): # DeleteOnlyModelAdmin - All Fields Default Readonly # DeleteonlyModelAdmin - All Fields Not Default Readonly pass
- Should add
django_admin
inINSTALLED_APPS
INSTALLED_APPS = [ ... 'django_admin', ... ]
- Should add
- Disable Delete/Change
from django.contrib import admin from django_admin import AddOnlyModelAdmin class XXXAdmin(AddOnlyModelAdmin, admin.ModelAdmin): pass
- Should add
django_admin
inINSTALLED_APPS
INSTALLED_APPS = [ ... 'django_admin', ... ]
- Should add
- Will disable
delete_selected
for allModelAdmin
- Will lost delete confirm