Custom Formatters
To create a custom formatter, you need to define a new class that inherits from BaseFormatter
and implement the format
method.
Below is an example of how to create a simple custom formatter, that replaces the cell content with a bold "Hello World" text.
from ckanext.tables.shared import BaseFormatter
class MyCustomFormatter(BaseFormatter):
"""Replaces cell content with a bold Hello World."""
def format(
self, value: types.Value, options: types.Options
) -> types.FormatterResult:
return tk.literal(f"<strong>Hello World</strong>")
Each formatter has an access to the cell value and the options passed to the formatter. Also, self.table
, self.row
, and self.column
attributes are available to access the table, row, and column definitions respectively.
BaseFormatter
Abstract base class for all formatters.
Source code in ckanext/tables/formatters.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|