Skip to content

Row

Row

djadmin.layout.Row

Horizontal layout of fields using flexbox.

Part of core djadmin. Renders fields side-by-side.

Examples

Two columns

Row( Field('first_name', css_classes=['flex-1', 'pr-2']), Field('last_name', css_classes=['flex-1', 'pl-2']), )

Three columns

Row( Field('city', css_classes=['flex-1']), Field('state', css_classes=['flex-1']), Field('zip', css_classes=['flex-1']), )

Unequal widths (flexbox basis)

Row( Field('street', css_classes=['flex-[2]']), # 2/3 Field('apt', css_classes=['flex-1']), # 1/3 )

Method Resolution Order

  1. djadmin.layout.Row

Attributes

Attribute Value Defined in
__annotations__ {'fields': <class 'tuple'>, 'css_classes': list[str]} djadmin.layout.Row
__dataclass_fields__ {'fields': Field(name='fields',type=<class 'tuple'>,defau... djadmin.layout.Row
__dataclass_params__ _DataclassParams(init=True,repr=True,eq=True,order=False,... djadmin.layout.Row
__hash__ None djadmin.layout.Row
__match_args__ ('fields', 'css_classes') djadmin.layout.Row

Methods

__eq__(self, other)

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

Return self==value.

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

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

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

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

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

__repr__(self)

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

String representation for readability.

Source code in layout.py line 559
    def __repr__(self):
        """String representation for readability."""
        fields_repr = ', '.join(repr(f) for f in self.fields)
        if self.css_classes:
            return f'Row({fields_repr}, css_classes={self.css_classes!r})'
        return f'Row({fields_repr})'

render_for_display(self, obj) -> dict

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

Render row for display (horizontal layout).

Args: obj: Model instance to get field values from

Returns: Dict with row display data: { 'type': 'row', 'items': list[dict], 'css_classes': list, }

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

        Args:
            obj: Model instance to get field values from

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

        return {
            'type': 'row',
            'items': items,
            'css_classes': self.css_classes,
        }

Fields

Field Type Related To
__dict__ getset_descriptor -
__weakref__ getset_descriptor -