Filters

More info on filters (and how to create your own!!) coming soon...

Class Reference

class canary.filters.ColumnFilter(field_name=None, label=None, prefix=None)

The base class of all filters.

Yes, all your column filter base belong to us...

__init__(field_name=None, label=None, prefix=None)

Create a ColumnFilter.

Args:
field_name: The field name to use in filtering the QuerySet. If not provided, the column name is used. label: The label of the submit button. prefix: The prefix to use for naming the HTML object.
get_field_name()

Get the field name to be used to filter the QuerySet.

Returns:
The field_name, if provided, or the column field name.
load(request, queryset)

Load data for the filter from the current request.

This method is expected to create the self._meta.data object.

Args:
request: The Django Request. queryset: The Django QuerySet.
Sets:
_meta.data: The data collected from the request object.
class canary.filters.FormFilter(*args, **kwargs)

The base class of all form filters. They use a form to get the data used to filter the QuerySet.

Extends canary.filters.ColumnFilter.

__init__(*args, **kwargs)

Create a FormFilter.

clear_filter_data()

Clear filter data.

Sets:
data: Sets to an empty object.
get_label()

Get the filter label.

Returns:
The provided label or ‘Filter’.
get_prefix()

Get the filter prefix.

Returns:
The provided prefix or the column name.
filter_queryset(request, queryset)

Filter the QuerySet.

Args:
request: The Django request. queryset: The Django QuerySet.
Returns:
A Django QuerySet.
Raises:
NotImplementedError: If the method is not overridden by the filter class.
load(request, queryset)

Load data from the request.

Args:
request: The Django request. queryset: The Django QuerySet.
Sets:
data: Populates the object with form data.
render(request)

Renders the filter controls (form, buttons).

Args:
request: The Django request.
Returns:
A string of HTML containing the filter controls. By default, this is rendered as part of canary.columns.ColumnHeader.render.
set_data(request, *args, **kwargs)

Set the form data.

Args:
request: The Django request.
Sets:
data: The form field data as attributes on an object.
class canary.filters.DateRange(*args, **kwargs)

Filter a date column by a date range.

Extends canary.filters.FormFilter.

filter_queryset(request, queryset)

Filter the QuerySet.

Args:
request: The Django request. queryset: The QuerySet.
Returns:
A QuerySet.
class canary.filters.Search(columns=None, *args, **kwargs)

Filter a column with an icontains filter.

Extends canary.filters.FormFilter.

__init__(columns=None, *args, **kwargs)

Create a Search filter.

Args:
columns: A list of column names to search.
filter_queryset(request, queryset)

Filter the QuerySet.

Args:
request: The Django request. queryset: The QuerySet.
Returns:
A QuerySet.
class canary.filters.Choice(choices=None, *args, **kwargs)

A Choice filter, for use with Django model fields with choices.

Extends canary.filters.ColumnFilter.

filter_queryset(request, queryset)

Filter the QuerySet based on the selected choice.

Args:
request: The Django request. queryset: The QuerySet.
Returns:
A QuerySet.
get_data(request, *args, **kwargs)

Get the filter data.

Args:
request: The Django request.
Returns:
A dictionary of form data.
get_filter_name()

Get the filter name.

Returns:
The name of the HTML form input element.
load(request, queryset)

Load filter data.

Args:
request: The Django request.
Sets:
choices: A tuple of choices. data: And object with the filter data as attributes.
render(request)

Renders the filter controls (form, buttons).

Args:
request: The Django request.
Returns:
A string of HTML containing the filter controls. By default, this is rendered as part of canary.columns.ColumnHeader.render.
set_data(request)

Set the filter data.

Args:
request: The Django request.
Sets:
data: An object with the filter data as attributes.
class canary.filters.ForeignKey(choices=None, *args, **kwargs)

A ForeignKey filter, for use with Django models.ForeignKey fields.

Extends canary.filters.Choice.

filter_queryset(request, queryset)

Filter the QuerySet based on the selected choice.

Args:
request: The Django request. queryset: The QuerySet.
Returns:
A QuerySet.
get_choices(queryset)

Get the choice tuple.

Args:
queryset: The QuerySet.
Returns:
A choice tuple (exactly the same as used to define Django model fields).

Get the related Django model.

Returns:
The related Django model.
Raises:
NotImplementedError: Magic is hard. Until I figure out how to work related magics, you must define this.

Project Versions

Table Of Contents

Previous topic

Columns

Next topic

Sorts

This Page