Skip to content

Order

Order

djadmin.dataclasses.Order

Ordering configuration for a Column.

This dataclass specifies how a column should be orderable, including custom labels and which fields to use for ordering.

The Order instance is truthy when enabled=True and falsy when enabled=False, allowing for simple boolean checks: if column.order: ...

Class Attributes

Attribute Type Description
enabled - Whether ordering is enabled for this column.
fields - Optional list of field names to use for ordering. If None, uses the column's field.
label - Optional custom label for ascending order.
descending_label - Optional custom label for descending order.

Examples

Enable ordering (default behavior)

Column('name', order=Order())

Disable ordering

Column('description', order=Order(enabled=False))

Custom labels for ascending/descending

Column('price', order=Order( label='Price (low to high)', descending_label='Price (high to low)' ))

Order by multiple fields

Column('author', order=Order(fields=['author__last_name', 'author__first_name']))

Method Resolution Order

  1. djadmin.dataclasses.Order

Attributes

Attribute Value Defined in
__annotations__ {'enabled': 'bool', 'fields': 'list[str] | None', 'label'... djadmin.dataclasses.Order
__dataclass_fields__ {'enabled': Field(name='enabled',type='bool',default=True... djadmin.dataclasses.Order
__dataclass_params__ _DataclassParams(init=True,repr=True,eq=True,order=False,... djadmin.dataclasses.Order
__hash__ None djadmin.dataclasses.Order
__match_args__ ('enabled', 'fields', 'label', 'descending_label') djadmin.dataclasses.Order
descending_label None djadmin.dataclasses.Order
enabled True djadmin.dataclasses.Order
fields None djadmin.dataclasses.Order
label None djadmin.dataclasses.Order

Methods

__bool__(self)

Defined in: <class 'djadmin.dataclasses.Order'>

Make Order truthy when enabled, falsy when disabled.

Source code in dataclasses.py line 180
    def __bool__(self):
        """Make Order truthy when enabled, falsy when disabled."""
        return self.enabled

__eq__(self, other)

Defined in: <class 'djadmin.dataclasses.Order'>

Return self==value.

__init__(self, enabled: 'bool' = True, fields: 'list[str] | None' = None, label: 'str | None' = None, descending_label: 'str | None' = None) -> None

Defined in: <class 'djadmin.dataclasses.Order'>

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

__repr__(self)

Defined in: <class 'djadmin.dataclasses.Order'>

Return repr(self).

to_ordering_choice(self, field_name: 'str', column_label: 'str')

Defined in: <class 'djadmin.dataclasses.Order'>

Convert to OrderingFilter choice tuple.

Args: field_name: The field name from the Column. column_label: The display label for the column.

Returns: tuple: A tuple of (ascending_choice, descending_choice) for OrderingFilter, or None if ordering is disabled.

Example: >>> order = Order(label='Name (A-Z)', descending_label='Name (Z-A)') >>> order.to_ordering_choice('name', 'Name') (('name', 'Name (A-Z)'), ('-name', 'Name (Z-A)'))

Source code in dataclasses.py line 184
    def to_ordering_choice(self, field_name: str, column_label: str):
        """
        Convert to OrderingFilter choice tuple.

        Args:
            field_name: The field name from the Column.
            column_label: The display label for the column.

        Returns:
            tuple: A tuple of (ascending_choice, descending_choice) for OrderingFilter,
                   or None if ordering is disabled.

        Example:
            >>> order = Order(label='Name (A-Z)', descending_label='Name (Z-A)')
            >>> order.to_ordering_choice('name', 'Name')
            (('name', 'Name (A-Z)'), ('-name', 'Name (Z-A)'))
        """
        if not self.enabled:
            return None

        # Use custom fields if specified, otherwise use the column's field
        base_field = self.fields[0] if self.fields else field_name
        asc_label = self.label or column_label
        desc_label = self.descending_label or f'{column_label} (desc)'

        return (
            (base_field, asc_label),
            (f'-{base_field}', desc_label),
        )

Fields

Field Type Related To
__dict__ getset_descriptor -
__weakref__ getset_descriptor -