Creating custom reports
By default, a report is rendered for the selected records and is available in the rendering context through the docs
variable. In some cases, it is useful to prepare arbitrary data structures to be used in the report. This is possible using custom reports.
A custom report can add whatever data that's needed to the report rendering context. This is done using an abstract model with a specific name, following the naming convention of report.<module>.<report-name>
.
This model should implement a _get_report_values()
method, which returns a dictionary with the variables to add to the rendering context.
As an example, a Books by Publisher custom report will be added to the Library app. It will show the books that have been published by each publisher. The following screenshot shows an example of the report's output:
The report will be available...