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
File details
Details for the file django-tables2-reports-0.0.2.tar.gz
.
File metadata
- Download URL: django-tables2-reports-0.0.2.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19bb71ec1d92a6069566f95ea30bd88a28942018c66545f23c1fa84fb4cb2571 |
|
MD5 | d629960063a6d1b02eddd2987687644f |
|
BLAKE2b-256 | ef16987f6d5041c032865c2e3dff6f1be1b0f765e8ec59a4cad13fad03f56c07 |