Skip to main content

Customizing Ralph Admin

Ralph Admin (ralph.admin.mixins.RalphAdmin) extends Django’s standard admin interface with powerful features for asset management. This guide covers how to customize admin classes for your models.

Overview

RalphAdmin is built on top of Django Admin and includes:
  • Import/Export functionality
  • Autocomplete widgets
  • Custom filters and search
  • Bulk editing
  • Version control integration
  • Custom views and tabs
  • Permission management

Basic Admin Class

Here’s a minimal admin class:
Source: src/ralph/admin/mixins.py:458-470

Import/Export Configuration

Resource Class

Define a resource class to handle importing and exporting:
Source: src/ralph/admin/mixins.py:383-422

Export Queryset Manager

Use a custom manager for exports to optimize database queries:
This tells Ralph to use MyModel.objects_with_related instead of the default manager when exporting data. Note: Ralph automatically select_related and prefetch_related all related objects defined in your Resource’s Meta. Source: src/ralph/admin/mixins.py:383-409

Custom Forms

All forms must inherit from RalphAdminFormMixin:
Source: src/ralph/admin/mixins.py:135-144

Autocomplete Fields

Ralph uses autocomplete widgets for ForeignKey and ManyToMany fields by default:
To disable autocomplete for a specific field:
Source: src/ralph/admin/mixins.py:93-133, docs/development/admin.md:204-214

Advanced Search Filters

Ralph provides specialized filter classes:
Source: docs/development/admin.md:168-190

Custom Filter Titles

Override the filter title for a field:
Source: docs/development/admin.md:194-203

Bulk Editing

Enable bulk editing for specific fields:
The BulkEditChangeListMixin automatically adds a “Bulk edit” action to the admin. Source: src/ralph/admin/mixins.py:509-568

Custom Views and Tabs

Add custom tabs to the detail view:
For custom template views:
Source: docs/development/addons.md:8-114

Queryset Customization

Use a custom queryset manager:
Source: src/ralph/admin/mixins.py:377-381

Permissions

Ralph includes enhanced permission handling:
Source: src/ralph/admin/mixins.py:263-273

Inline Configuration

Use Ralph’s inline classes:
Source: src/ralph/admin/mixins.py:476-492

Templates

Customize admin templates:

Complete Example

Here’s a comprehensive admin class:
Source: src/ralph/back_office/admin.py:83-100, src/ralph/data_center/admin.py:26-70

Next Steps

  • Learn about Custom Fields to add dynamic fields to your models
  • Explore Transitions for workflow management
  • Check out Addons for extending Ralph with external applications