With django-tables2-reports you can get a report (CSV, XLS) of any django-tables2 with minimal changes to your project
Project description
Django tables2 report
With django-tables2-reports you can get a report (CSV, XLS) of any table with minimal changes to your project
Requeriments
django-tables2 (>=0.11.0, tested to 0.13.0)
xlwt or pyExcelerator (>=0.6.4a) or (>=7.2) (These are optionals, to export to xls. Default to xlwt if available)
Installation
In your settings:
INSTALLED_APPS = ( 'django_tables2_reports', ) TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.static', )
Changes in your project
Now your table should extend of ‘TableReport’
############### Before ################### import django_tables2 as tables class MyTable(tables.Table): ... ############### Now ###################### from django_tables2_reports.tables import TableReport class MyTable(TableReport): ...
2.a. If you use a traditional views, now you should use other RequestConfig and change a little your view:
############### Before ################### from django_tables2 import RequestConfig def my_view(request): objs = .... table = MyTable(objs) RequestConfig(request).configure(table) return render_to_response('app1/my_view.html', {'table': table}, context_instance=RequestContext(request)) ############### Now ###################### from django_tables2_reports.config import RequestConfigReport as RequestConfig from django_tables2_reports.utils import create_report_http_response def my_view(request): objs = .... table = MyTable(objs) table_to_report = RequestConfig(request).configure(table) if table_to_report: return create_report_http_response(table_to_report, request) return render_to_response('app1/my_view.html', {'table': table}, context_instance=RequestContext(request))
If you have a lot of tables in your project, you can activate the middleware, and you do not have to change your views, only the RequestConfig import
# In your settings MIDDLEWARE_CLASSES = ( 'django_tables2_reports.middleware.TableReportMiddleware', ) ############### Now (with middleware) ###################### from django_tables2_reports.config import RequestConfigReport as RequestConfig def my_view(request): objs = .... table = MyTable(objs) RequestConfig(request).configure(table) return render_to_response('app1/my_view.html', {'table': table}, context_instance=RequestContext(request))
2.b. If you use a Class-based views:
############### Before ################### from django_tables2.views import SingleTableView class PhaseChangeView(SingleTableView): table_class = MyTable model = MyModel ############### Now ###################### from django_tables2_reports.views import ReportTableView class PhaseChangeView(ReportTableView): table_class = MyTable model = MyModel
Usage
Under the table appear a CSV icon (and XLS icon if you have xlwt or pyExcelerator in your python path), if you click in this icon, you get a CSV report (or xls report) with every item of the table (without pagination). The ordering works!
Releases
0.0.5 (2013-07-03)
Improvements in the README
Exportable to XLS with xlwt
- Thanks to:
And spatially to Austin Phillips
0.0.4 (2013-05-17)
Escape csv data correctly during output
The fields with commas now are not split into multiple columns
- Thanks to:
0.0.3 (2012-07-19)
Fix a little error, when a column has line breaks. Now these are changed to espaces
Details
0.0.2 (2012-07-18)
Add a default view (https://docs.djangoproject.com/en/dev/topics/class-based-views/)
Exportable to XLS
Update the README
0.0.1 (2012-07-17)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-tables2-reports-0.0.5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebd7f0a4a910e761a53a2e85da17a23981100ff0172a445f61d7ca762ff97559 |
|
MD5 | 2f1c83d527c3e89a24738f32f21acc0d |
|
BLAKE2b-256 | 21cb86ac2e8984ad8ed6de0b81e4e7122f93653e01c36923c0c0d354c99798da |