With django-tables2-reports you can get a CSV report of any django-tables2 with minimal changes to your project
Project description
Django tables2 report
With django-tables2-reports you can get a CSV report of any table with minimal changes to your project
Requeriments
django-tables2 (>=0.11.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_csv = RequestConfig(request).configure(table) if table_to_csv: return create_report_http_response(table_to_csv, 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.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.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19bb71ec1d92a6069566f95ea30bd88a28942018c66545f23c1fa84fb4cb2571 |
|
MD5 | d629960063a6d1b02eddd2987687644f |
|
BLAKE2b-256 | ef16987f6d5041c032865c2e3dff6f1be1b0f765e8ec59a4cad13fad03f56c07 |