Package: django-tables2-reports
Contentsdjango-tables2-reportsRequirementsInstallationChanges in your projectUsageDevelopmentTest projectReleases0.1.0 (2017-06-19)0.0.10 (2014-10-13)0.0.9 (2013-11-30)0.0.8 (2013-11-14)0.0.7 (2013-08-29)0.0.6  (2013-08-22)0.0.5  (2013-07-03)0.0.4  (2013-05-17)0.0.3  (2012-07-19)0.0.2  (2012-07-18)0.0.1  (2012-07-17)django-tables2-reportsWith django-tables2-reports you can get a report (CSV, XLS) of anytablewithminimal changesto your projectRequirementsPython(supports 2.7, 3.3, 3.4, 3.5, 3.6)Django(supports 1.3, 1.4, 1.5, 1.6, 1.7, 1.8. 1.9, 1.10, 1.11)django-tables2xlwt,openpyxlorpyExcelerator(these are optionals, to export to xls; defaults to xlwt if available)InstallationIn your settings:INSTALLED_APPS = (

    'django_tables2_reports',
)


TEMPLATE_CONTEXT_PROCESSORS = (

    'django.core.context_processors.static',

)


# This is optional

EXCEL_SUPPORT = 'xlwt' # or 'openpyxl' or 'pyexcelerator'Changes in your project1.a 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):

    ...1.b If you want to exclude some columns from report (e.g. if it is a column of buttons), you should set ‘exclude_from_report’ - the names of columns (as well as property ‘exclude’ intable)class MyTable(TableReport):

    class Meta:
        exclude_from_report = ('column1', ...)
    ...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 aClass-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 = MyModelUsageUnder the table appear a CSV icon (and XLS icon if you havexlwt,openpyxlorpyExceleratorin 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!DevelopmentYou can get the last bleeding edge version of django-tables2-reports by doing a clone
of its git repository:git clone https://github.com/goinnn/django-tables2-reportsTest projectIn the source tree, you will find a directory called ‘test_project’. It contains
a readily setup project that uses django-tables2-reports. You can run it as usual:cd test_project
export PYTHONPATH=..
python manage.py syncdb --noinput
python manage.py runserverReleases0.1.0 (2017-06-19)maintenance release,Django 1.8, 1.9, 1.10, 1.11 support,openpyxl > 2.0.0 support,recent django-tables2 support,new maintainerMichał Pasternak0.0.10 (2014-10-13)Fixes for xlsx Content-Type:django-tables2-reports throws 500 Sever Error when report format is not recognized. 404 is more appropriate in this case.django-tables2-reports sets Content-Type to application/vnd.ms-excel for xlsx files which causes warnings in Firefox. application/vnd.openxmlformats-officedocument.spreadsheetml.sheet is the correct Content-Type for xlsxSupport to Django 1.7 (I’m sorry to the delay)Adding new feature: exclude_from_reportAnd a little detailsThanks to:Ramana VaranasiMihasPaulgueltekinDavid Ray0.0.9 (2013-11-30)Compatible with the future version  of Django (>=1.7)Update the testsRefactor the codeFix a bug when the title of the sheet is longer than 31Thanks to:Pavel Zaytsev0.0.8 (2013-11-14)Refactor the csv_to_excel module. In the next release this package will be a pypi egg.Support foropenpyxlIntegration with travis and coverallsFix an error if you use the theme paleblueFix test with python 3Fix some detailsTest projectThanks to:Michał PasternakMark Jones0.0.7 (2013-08-29)Russian translationsThanks to:Armicron0.0.6  (2013-08-22)Python3 supportPolish translationThanks to:Michał Pasternak0.0.5  (2013-07-03)Improvements in the READMEExportable to XLS withxlwtThanks to:Crashy23GamesbookAnd spatially toAustin Phillips0.0.4  (2013-05-17)Escape csv data correctly during outputThe fields with commas now are not split into multiple columnsThanks to:Austin Phillips0.0.3  (2012-07-19)Fix a little error, when a column has line breaks. Now these are changed to espacesDetails0.0.2  (2012-07-18)Add a default view (https://docs.djangoproject.com/en/dev/topics/class-based-views/)Exportable to XLSUpdate the README0.0.1  (2012-07-17)Initial release