Skip to content

Filter

Filter

djadmin.dataclasses.Filter

Filter configuration for a Column.

This dataclass wraps django-filter configuration and provides a clean API for specifying how a column should be filterable.

Class Attributes

Attribute Type Description
lookup_expr - The lookup expression(s) to use. Can be a string like 'exact', 'icontains', 'gte', or a list like ['gte', 'lte'] for ranges.
widget - Optional Django form widget to use for the filter input.
label - Optional custom label for the filter field.
method - Optional method name or callable to use for custom filtering logic.
exclude - If True, creates an exclude filter instead of a regular filter.
distinct - If True, adds .distinct() to the queryset.
field_class - Optional custom field class to use.
extra - Additional kwargs to pass to django-filter.

Examples

Simple exact match filter

Column('category', filter=Filter())

Contains filter (case-insensitive)

Column('name', filter=Filter(lookup_expr='icontains'))

Range filter (for numeric/date fields)

Column('price', filter=Filter(lookup_expr=['gte', 'lte']))

Custom filter method

Column('status', filter=Filter(method='filter_by_status'))

Method Resolution Order

  1. djadmin.dataclasses.Filter

Attributes

Attribute Value Defined in
__annotations__ {'lookup_expr': 'str | list[str]', 'widget': 'type | None... djadmin.dataclasses.Filter
__dataclass_fields__ {'lookup_expr': Field(name='lookup_expr',type='str | list... djadmin.dataclasses.Filter
__dataclass_params__ _DataclassParams(init=True,repr=True,eq=True,order=False,... djadmin.dataclasses.Filter
__hash__ None djadmin.dataclasses.Filter
__match_args__ ('lookup_expr', 'widget', 'label', 'method', 'exclude', '... djadmin.dataclasses.Filter
distinct False djadmin.dataclasses.Filter
exclude False djadmin.dataclasses.Filter
field_class None djadmin.dataclasses.Filter
label None djadmin.dataclasses.Filter
lookup_expr exact djadmin.dataclasses.Filter
method None djadmin.dataclasses.Filter
widget None djadmin.dataclasses.Filter

Methods

__eq__(self, other)

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

Return self==value.

__init__(self, lookup_expr: 'str | list[str]' = 'exact', widget: 'type | None' = None, label: 'str | None' = None, method: 'str | Callable | None' = None, exclude: 'bool' = False, distinct: 'bool' = False, field_class: 'type | None' = None, extra: 'dict' = <factory>) -> None

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

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

__repr__(self)

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

Return repr(self).

to_kwargs(self) -> 'dict'

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

Convert to django-filter kwargs.

Returns: dict: Keyword arguments suitable for django-filter field creation.

Source code in dataclasses.py line 115
    def to_kwargs(self) -> dict:
        """
        Convert to django-filter kwargs.

        Returns:
            dict: Keyword arguments suitable for django-filter field creation.
        """
        kwargs = {
            'lookup_expr': self.lookup_expr,
            'exclude': self.exclude,
            'distinct': self.distinct,
        }

        if self.widget:
            kwargs['widget'] = self.widget
        if self.label:
            kwargs['label'] = self.label
        if self.method:
            kwargs['method'] = self.method
        if self.field_class:
            kwargs['field_class'] = self.field_class

        kwargs.update(self.extra)
        return kwargs

Fields

Field Type Related To
__dict__ getset_descriptor -
__weakref__ getset_descriptor -