Skip to content

Fieldset

Fieldset

djadmin.layout.Fieldset

Grouping of fields with optional legend (heading).

Part of core djadmin. Renders as HTML

element.

Examples

Named fieldset

Fieldset('Personal Information', Field('name'), Field('birth_date'), )

Unnamed fieldset (legend=None)

Fieldset(None, Field('name'), Field('email'), )

With description

Fieldset('Advanced Options', Field('custom_field'), description='These fields are for advanced users', css_classes=['collapse'], )

Method Resolution Order

  1. djadmin.layout.Fieldset

Attributes

Attribute Value Defined in
__annotations__ {'legend': str | None, 'fields': <class 'tuple'>, 'descri... djadmin.layout.Fieldset
__dataclass_fields__ {'legend': Field(name='legend',type=str | None,default=<d... djadmin.layout.Fieldset
__dataclass_params__ _DataclassParams(init=True,repr=True,eq=True,order=False,... djadmin.layout.Fieldset
__hash__ None djadmin.layout.Fieldset
__match_args__ ('legend', 'fields', 'description', 'css_classes') djadmin.layout.Fieldset
description None djadmin.layout.Fieldset

Methods

__eq__(self, other)

Defined in: <class 'djadmin.layout.Fieldset'>

Return self==value.

__init__(self, legend: str | None, *fields, description: str | None = None, css_classes: list[str] | None = None)

Defined in: <class 'djadmin.layout.Fieldset'>

Initialize self. See help(type(self)) for accurate signature.

Source code in layout.py line 438
    def __init__(
        self,
        legend: str | None,
        *fields,
        description: str | None = None,
        css_classes: list[str] | None = None,
    ):
        self.legend = legend
        self.fields = fields
        self.description = description
        self.css_classes = css_classes or []

        if not fields:
            raise ValueError('Fieldset must contain at least one field')

__repr__(self)

Defined in: <class 'djadmin.layout.Fieldset'>

Multi-line string representation for readability.

Source code in layout.py line 482
    def __repr__(self):
        """Multi-line string representation for readability."""
        # Format fields with indentation
        fields_repr = ',\n        '.join(repr(f) for f in self.fields)

        parts = [repr(self.legend), f'\n        {fields_repr}']
        if self.description:
            parts.append(f'description={self.description!r}')
        if self.css_classes:
            parts.append(f'css_classes={self.css_classes!r}')

        return f"Fieldset({', '.join(parts)}\n    )"

render_for_display(self, obj) -> dict

Defined in: <class 'djadmin.layout.Fieldset'>

Render fieldset for display.

Args: obj: Model instance to get field values from

Returns: Dict with fieldset display data: { 'type': 'fieldset', 'legend': str | None, 'description': str | None, 'items': list[dict], 'css_classes': list, }

Source code in layout.py line 453
    def render_for_display(self, obj) -> dict:
        """
        Render fieldset for display.

        Args:
            obj: Model instance to get field values from

        Returns:
            Dict with fieldset display data:
            {
                'type': 'fieldset',
                'legend': str | None,
                'description': str | None,
                'items': list[dict],
                'css_classes': list,
            }
        """
        items = []
        for field_item in self.fields:
            items.append(field_item.render_for_display(obj))

        return {
            'type': 'fieldset',
            'legend': self.legend,
            'description': self.description,
            'items': items,
            'css_classes': self.css_classes,
        }

Fields

Field Type Related To
__dict__ getset_descriptor -
__weakref__ getset_descriptor -