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)
pyExcelerator (>=0.6.4a) (This is optional, to export to xls)
Installation
In your settings:
INSTALLED_APPS = ( 'django_tables2_reports', )
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 pyExcelerator), 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.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.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf3f1457f12d27538a7f8b1b8c3e23c4fa07aaff58ce0b2d53917689475f4595 |
|
MD5 | 64b803304990e6c90cace2eefd6578c0 |
|
BLAKE2b-256 | b4ac9e97ac99246c104ce15e5c1bd631fd4895713bcb05e42a27b3b6d8d9b133 |