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
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 |
- |