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