Skip to content

DetailViewActionMixin

DetailViewActionMixin

djadmin.actions.view_mixins.DetailViewActionMixin

Mixin for actions that use DetailView (read-only display).

Use for actions that display model instances in read-only mode using the Layout API for structured display.

The action can define a view_layout attribute on the ModelAdmin, or it will fall back to update_layout, layout, or auto-generate layout from model fields.

Examples

class ViewRecordAction(RecordActionMixin, DetailViewActionMixin, BaseAction): pass

In ModelAdmin:

class ProductAdmin(ModelAdmin): view_layout = Layout( Fieldset('Details', Field('name'), Field('price'), ), )

Method Resolution Order

  1. djadmin.actions.view_mixins.DetailViewActionMixin

Attributes

Attribute Value Defined in
base_class django.views.generic.detail.DetailView djadmin.actions.view_mixins.DetailViewActionMixin

Methods

get_context_data(self, **kwargs)

Defined in: <class 'djadmin.actions.view_mixins.DetailViewActionMixin'>

Add layout_items to context for template rendering.

Returns: Context dict with layout_items

Source code in view_mixins.py line 332
    def get_context_data(self, **kwargs):
        """
        Add layout_items to context for template rendering.

        Returns:
            Context dict with layout_items
        """
        context = super().get_context_data(**kwargs)

        # Get layout
        layout = self.get_layout()

        if layout:
            # Render layout for display
            obj = self.get_object()
            layout_items = layout.render_for_display(obj)
            context['layout_items'] = layout_items

        return context

get_layout(self)

Defined in: <class 'djadmin.actions.view_mixins.DetailViewActionMixin'>

Get layout for display.

Fallback order: 1. view_layout (action-specific) 2. update_layout (shares with edit view) 3. layout (generic) 4. Auto-generate from model fields

Returns: Layout instance or None

Source code in view_mixins.py line 281
    def get_layout(self):
        """
        Get layout for display.

        Fallback order:
        1. view_layout (action-specific)
        2. update_layout (shares with edit view)
        3. layout (generic)
        4. Auto-generate from model fields

        Returns:
            Layout instance or None
        """
        # Try view_layout first (most specific)
        layout = getattr(self.model_admin, 'view_layout', None)
        if layout:
            return layout

        # Fallback to update_layout (share with edit view)
        layout = getattr(self.model_admin, 'update_layout', None)
        if layout:
            return layout

        # Fallback to generic layout
        layout = getattr(self.model_admin, 'layout', None)
        if layout:
            return layout

        # No layout defined - auto-generate from model fields
        return None

Fields

Field Type Related To
__dict__ getset_descriptor -
__weakref__ getset_descriptor -