- Remove page-link class from the ellipses paginator element
- Assign request to table before anything else in
RequestConfig.configure()
(#888) fixes: #865 - Add type hints to get_context_data (#895) by @mschoettle
- Document hidden table attributes setting (#897) by @mschoettle
- Fix building of the docs (#900) by @danielroseman
- Add template bootstrap5-responsive.html (#896) by @mschoettle
TableMixinBase
: implementget_paginate_by
(#811) by @Alirezaja1384
- Dropped support for python 3.6, added support for python 3.11
- Add django_tables2/bootstrap4-responsive.html (#874) by @botlabsDev
- Pass record/value to
LinkColumn
's attrs callables too (#852) by @wsldankers - Add template
bootstrap5.html
to support bootstrap 5 (#880, fixes #796
- Add Persian (Farsi) locale (#806) by @Alirezaja1384
- Improved error message if openpyxl is not installed (#816)
- Use correct mime type for xlsx (fixes: #810)
- Add support for django 4.0, drop support for python 3.5 (#822)
- Add support for django 3.2 and python 3.9, drop support for django 3.0
- Add Django 3.0 and 3.1 trove classifiers #803 by @Asday
- Strip leading and trailing whitespace from TemplateColumn.value() #794 by @jeremystretch
- Providing link for django-bootstrap3 #793 by @TareqMonwer
- Fix for crash on windows while deleting temp file #788
- Removed deprecation warnings with django==3.1 regarding
JSONField
#785
- Use
table.default
for emptyManyToMany
relations (#773) fixes: #769 - Pass record/value to
CheckboxColumn
'sattrs
callables too (#774), fixes: #762
- Fix popping the extra_context of TemplateColumn #767 by @bernhardmiller
- Fix typo for the translation of the word 'next' in greek [#759]](jieter#759) by @orfeasa
- Add
format_html
import to preventNameError
#752 by @MBfromOK - Fixed Russian translation #768 by @Real-Gecko
- Fixed the
LazyPaginator
in a simpler more predictable way: an attempt to show a non-existent page, shows the first page. #743
- Add ability to pass
tablib.Dataset
kwargs
viaTableExport
andExportMixin
#720 by @powderflask - Drop django==2.1 support, add optional tablib requirements #738
- Short-circuit
Accessor.resolve()
if the context contains the exact accessor #722, fixes #717 - Fixed yaml export #732 by @sg3-141-592
- Made Table docstring visible in docs #742
- Removed the TableBase construct in favor of using the
metaclass
keyword argument, as all supported python versions support it. #742 LazyPaginator
with non-existent page number should not result in a crash #741
- Fix backwards-compatibility with legacy separators in order_by clauses (#715 by @federicobond)
- Use
__
as accessor-separator, addlinkify
Meta option #702). This will currently emit a warning but falls back to using.
as separator. The next major version will raise aValueError
if used with.
as separator. - Add request attribute to table instance (#705 by @rubickcz).
- Append ellipsis for
LazyPaginator
if not on last page (#707 by @tuky)
- Made
ManyToManyColumn
usetable.default
instead of a local value #680 by @srtab - Removed invalid scope attribute in
<tr>
element ofbootstrap4.html
. #691 by @vlt - Fixed an issue with incorrectly disabled pagination where
SingleTableMixin
was not used together withListView
#678 by @nieuwenhuys
- Dropped support for python 2.7 (and django 1.11).
- Removed
django_tables2.utils.ucfirst
, usedjango.utils.text.capfirst
instead. - Removed
class="thead-default"
from bootstrap4 template (#671) - Included columns with
visible=False
in export (#677) - Fixed pagination when the number of pages is equal to page range plus one (#655)
- Add optional 'table' kwarg to
row_attrs
callables
- The
ValueError
raised if the QuerySet passed to a table instance did not match the value declared inMeta.model
is now turned into a warning (fixes #643) - Make sure the templates do not raise errors when
thead
/tfoot
attributes are not defined #624 by @intiocean
- Improvements in packaging and publishing helper scripts reducing the package size considerably #630 by @wtayyeb (fixes #629)
- Documentation improvements fixing #625, #631
- Make sure the value of the class attribute in
<th>
has consistent ordering (fixes #627) - Make sure that pagination block is available in template regardless of pagination status #622 by @apocalyptech
- Fixed a regression which did not allow
Table.Meta.order_by
to be a list.
Not much changed in this final version, but quite a lot if you are still on 1.21.2. Some breaking changes were introduced in version 2.0.0a0, so before upgrading from 1.21.2, please have a look through them carefully.
- Change order of logic in
get_table_pagination
to make sure we are able to override the paginator usingView.paginator_class
attribute.
- The
klass
argument toTable.paginate()
is renamed topaginator_class
- Table views/mixins now take
ListView
attributespaginator_class
andpaginate_orphans
into account.
- Fixed a bug in the implementation of #606
- Added the ability to change the html attributes for
thead
,tbody
,tfoot
tags #606 by @roelbouwman
- Added
LazyPaginator
to prevent making.count()
queries (#604).
- Added
linkify_item
keyword argument toManyToManyColumn
, fixes #594 - Fixed an encoding issue in
README.md
preventing installation in some environments.
- Add
linkify
keyword argument to all columns, to allow wrapping the content in a<a>
tag. It accepts one of these ways to define the link:True
to use the record return value ofrecord.get_absolute_url()
,- a callable to use its return value
- a dict which is passed on to
django.urls.reverse()
- a (viewname, args) or (viewname, kwargs)-tuple which is also passed on to
django.urls.reverse()
. Implementation should be backwards compatible, so all use ofLinkColumn
andRelatedLinkColum
should still work. #590
Hello from DjangoCon Europe!
- Fix table prefix being overwritten in
MultiTableView
, #576 by @ETinLV, (fixes #572) - Fix
empty_text
cannot be translated (fixes #579)
- Another round of template cleanup.
- Fresh screenshots
- Prevent crash in
RelatedLinkColumn
for records withoutget_absolute_url()
. - Raise
ValueError
whenTable.Meta.model != QuerySet.Model
. - Raise
TypeError
when incorrect types are used forTable.Meta
attributes (fixes #517) - Fix:
Table.Meta.sequence
withextra_columns
can leads toKeyError
(fixes #486)
- Fixed translation of 'previous' for some languages (fixes #563)
- Cleaned up templates to add consistency in what is presented across all templates.
- Added bootstrap4.html template
- Fixed translation inconsistencies.
- Appearance of the paginators might be different from the current 1.x templates. Use a custom template if you need to keep the appearance the same.
- Removed the
template
argument to the table constructor, usetemplate_name
instead. - Stopped adding column names to the class attribute of table cells (
<td>
tags) by default. Previous behavior can be restored by using this method on your custom table:
class MyTable(tables.Table):
# columns
def get_column_class_names(self, classes_set, bound_column):
classes_set = super(MyTable, self).get_column_class_names(classes_set, bound_column)
classes_set.add(bound_column.name)
return classes_set
verbose_name
s derived from model fields are not passed throughtitle()
anymore, only the first character is converted to upper case. This follows Django's convention for verbose field names: "The convention is not to capitalize the first letter of the verbose_name. Django will automatically capitalize the first letter where it needs to." (Fixes #475 and #491)
- Moved table instantiation from
get_context_data
toget_tables
#554 by @sdolemelipone - Pass request as kwarg to
template.render()
, rather than as part of context. (fixes #552)
- Do not perform extra
COUNT()
queries for non-paginated tables. Fixes #551
- Add new method
paginated_rows
toTable
to replace fallback to non-paginated rows in templates. - Prevent mutation of the template context
{% render_table %}
is called from (fixes #547) Possible breaking change: the context variables of the template{% render_table %}
is called from is no longer available in the table's template. Thetable
variable has an attributecontext
, which is the context of the calling template. Use{{ table.context.variable }}
instead of{{ variable }}
.
- Define and use
get_table_data
inMultiTableMixin
#538 by @vCra (fixes #528) - Added
{% export_url <format> %}
template tag. - Allow passing a
TableData
-derived class to the data argument of theTable
constructor, instead of a QuerySet or list of dicts.
BoundColumn.attrs
does not evaluatecurrent_value
asbool
#536 by @pachewise (fixes #534)- Allow more flexible access to cell values (especially useful for django templates) (fixes #485)
- Follow relations when detecting column type for fields in
Table.Meta.fields
(fixes #498) - Renamed
Table.Meta.template
totemplate_name
(with deprecation warning for the former) #542 (fixes #520) - Added Czech translation #533 by @OndraRehounek
- Added
table_factory
#532 by @ZuluPro
- Fix typo in setup.py for
extras_require
.
- Dropped support for Django 1.8, 1.9 and 1.10.
- Add
extra_context
argument toTemplateColumn
#509 by @ad-m - Remove unnecessary cast of record to
str
#514, fixes #511 - Use
django.test.TestCase
for all tests, and remove dependency on pytest and reorganized some tests #515 - Remove traces of django-haystack tests from the tests, there were no actual tests.
This is the last version supporting Django 1.8, 1.9 and 1.10. Django 1.8 is only supported until April 2018, so consider upgrading to Django 1.11!
- Added
tf
dictionary toColumn.attrs
with default values for the footer, so footers now haveclass
attribute by default #501 by @mpasternak
- Added
as=varname
keyword argument to the{% querystring %}
template tag, fixes #481 - Updated the tutorial to reflect current state of Django a bit better.
- Used
OrderedDict
rather thandict
as the parent forutils.AttributeDict
to make the rendered html more consistent across python versions. - Allow reading column
attrs
from a column's attribute, allowing easier reuse of custom column attributes (fixes #241) value
andrecord
are optionally passed to the column attrs callables for data rows. #503, fixes #500
- Added a
row_counter
variable to the template context inTemplateColumn
(fixes #448)
- Do not fail if
orderable=False
is passed toManyToManyColumn()
- Added
separator
argument toManyToManyColumn
. - Allow
mark_safe()
'd strings fromManyToManyColumn.tranform()
- Disabled ordering on
ManyToManyColumns
by default.
- Made positional
data
argument to the table__init__()
a keyword argument to make inheritance easier. Will raise aTypeError
if omitted.
- Allow export file name customization #484 by @federicobond
- Fixed a bug where template columns were not rendered for pinned rows (#483 by @khirstinova, fixes #482)
- Added Hungarian translation #471 by @hmikihth.
- Added TemplateColumn.value() and enhanced export docs (fixes #470)
- Fixed display of pinned rows if table has no data. #477 by @khirstinova
- Added
ManyToManyColumn
automatically added forManyToManyField
s.
- Allow customizing the value used in
Table.as_values()
(when using arender_<name>
method) using avalue_<name>
method. (fixes #458) - Allow excluding columns from the
Table.as_values()
output. (fixes #459) - Fixed unicode handling for column headers in
Table.as_values()
- Feature: Added an
ExportMixin
to export table data in various export formats (CSV, XLS, etc.) using tablib. - Defer expanding
Meta.sequence
toTable.__init__
, to make sequence work in combination withextra_columns
(fixes #450) - Fixed a crash when
MultiTableMixin.get_tables()
returned an empty array (#454 by @pypetey
- Call before_render when rendering with the render_table template tag (fixes #447)
- Make
title()
lazy (#443 by @ygwain, fixes #438) - Fix
__all__
by populating them with the names of the items to export instead of the items themselves. - Allow adding extra columns to an instance using the
extra_columns
argument. Fixes #403, #70 - Added a hook
before_render
to allow last-minute changes to the table before rendering. - Added
BoundColumns.show()
andBoundColumns.hide()
to show/hide columns on an instance of aTable
. - Use
<listlike>.verbose_name
/.verbose_name_plural
if it exists to name the items in the list. (fixes #166)
- Add missing pagination to the responsive bootstrap template (#440 by @tobiasmcnulty)
- Add new template
bootstrap-responsive.html
to generate a responsive bootstrap table. (Fixes #436)
Full disclosure: as of april 1st, 2017, I am an employee of Zostera, as such I will continue to maintain and improve django-tables2.
- Made
TableBase.as_values()
an iterator (#432 by @pziarsolo) - Added
JSONColumn
for data in JSON format. - Added
__all__
indjango_tables2/__init__.py
anddjango_tables2/columns/__init__.py
- Added a setting
DJANGO_TABLES2_TEMPLATE
to allow project-wide overriding of the template used to render tables (fixes #434).
- Feature: Pinned rows (#411 by @djk2, fixes #406)
- Fix an issue where
ValueError
was raised while using a view with aget_queryset()
method defined. (fix with #423 by @desecho)
- Fix URLS to screenshots in on PyPi description (fixes #398)
- Prevent superfluous spaces when a callable
row_attrs['class']
returns an empty string (#417 by @Superman8218), fixes #416)
- Return
None
fromTable.as_values()
for missing values. #419 - Fix ordering by custom fields, and refactor
TableData
#424, fixes #413 - Revert removing
TableData.__iter__()
(removed in this commit), fixes #427, #361 and #421.
- Implement method
Table.as_values()
to get it's raw values. #394 by @intiocean - Fix some compatibility issues with django 2.0 #408 by djk2
- Apply
title
to a column'sverbose_name
when it is derived from a model, fixes #249. (#382 by @shawnnapora) - Update documentation after deprecation of
STATIC_URL
in django (#384, by @velaia) - Cleanup of the templates, making the output more equal (#381 by @ralgozino)
- Use new location for
urlresolvers
in Django and add backwards compatible import (#388 by @felixxm) - Fix a bug where using
sequence
and thenexclude
in a child table would result in aKeyError
- Some documentation fixes and cleanups.
- Added
get_table_kwargs()
method toSingleTableMixin
to allow passing custom keyword arguments to theTable
constructor. (#366 by @fritz-k) - Allow the children of
TableBase
render in the{% render_table %}
template tag. (#377 by @shawnnapora) - Refactor
BoundColumn
attributes to allow override of CSS class names, fixes #349 (#370 by @graup). Current behavior should be intact, we will change the default in the future so it will not add the column name to the list of CSS classes.
- Fixed an issue preventing the rest of the row being rendered if a
BooleanColumn
was in the table for a model without custom choices defined on the model field. (#360)
- Added Norwegian Locale (#356 by @fanzypantz)
- Restore default pagination for
SingleTableMixin
, fixes #354 (#395 by @graup)
- Accept
text
parameter inFileColumn
, analogous toLinkColumn
(#343 by @graup) - Fix TemplateColumn RemovedInDjango110Warning fixes #346.
- Use field name in RelatedColumnLink (#350, fixes #347)
- Allow use of custom class names for ordered columns through
attrs
. ( #329 by @theTarkus) - Column ordering QuerySet pass through (#330 by @theTarkus)
- Cleanup/restructuring of documentation, (#325)
- Fixed an issue where explicitly defined column options where not preserved over inheritance (#339, issue #337)
- Fixed an issue where
exclude
in combination withsequence
raised a KeyError (#341, issue #205)
- table footers (#323)
- Non-field based
LinkColumn
only renders default value if lookup fails. (#322) - Accept
text
parameter inBaseLinkColumn
-based columns. (#322) - Pass the table instance into SingleTableMixin's
get_table_pagination
(#320 by @georgema1982, fixes #319) - Check if the view has
paginate_by
before before trying to access it. (fixes #326)
- Allow custom attributes for rows (fixes #47)
- Ability to change the body of the
<a>
-tag, by passingtext
kwarg to the columns inheriting from BaseLinkColumn (#318 by @desecho, #322) - Non-field based LinkColumn only renders default value if lookup fails and text is not set. (#322, fixes #257)
- Added Italian translation (#315 by @paolodina
- Added Dutch translation.
- Fixed {% blocktrans %} template whitespace issues
- Fixed errors when using a column named
items
(#316) - Obey
paginate_by
(fromMultipleObjectMixin
) if no later pagination is defined (#242)
- Correct error message about request context processors for current Django (#314)
- Skipped 1.1.5 due to an error while creating the tag.
- Fix broken
setup.py
if Django is not installed before django-tables2 (fixes #312)
- Drop support for Django 1.7
- Add argument to
CheckBoxColumn
to render it as checked (original PR: #208)
- Fix
BooleanColumn
with choices set will always render as ifTrue
(#301) - Fix a bug with
TemplateColumn
while using cached template loader (#75)
- Allow
Meta.fields
to be a list as well as a tuple (#250) - Call template.render with a dict in Django >= 1.8. (#298)
- Added
RelatedLinkColumn()
to render links to related objects (#297) - Remove default value from request parameter to
table.as_html()
- Add tests for
TimeColumn
- Remove
sortable
argument forTable
and Column constructors and its associated methods. Deprecated since 2012. - Remove deprecated aliases for
attrs
inCheckboxColumn
. - Remove deprecated
OrderByTuple
cmp
method (deprecated since 2013). - Add bootstrap template and (#293, fixes #141, #285)
- Fix different html for tables with and without pagination (#293, fixes #149, #285)
- Remove
{% nospaceless %}
template tag and remove wrapping template in{% spaceless %}
Possible breaking change, if you use custom templates.
- Explicitly check if
column.verbose_name
is not None to support empty column headers (fixes #280) - Cleanup the example project to make it work with modern Django versions.
- Do not sort
QuerySet
whenorderable=False
(#204 by @bmihelac) show_header
attribute onTable
allows disabling the header (#175 by @kviktor)LinkColumn
now tries to callget_absolute_url
on a record if noviewname
is provided (#283, fixes #231).- Add
request
argument toTable.as_html()
to allow passing correct request objects instead of poorly generated ones #282 - Add coverage reporting to build #282
- Drop support for python 3.2 (because of coverage), support ends February 2016 #282
- move
build_request
fromdjango_table2.utils
totests.utils
and amend tests #282
- Support for custom text value in
LinkColumn
(#277 by @toudi) - Refactor
LinkColumn.render_link()
to not escape twice #279 - Removed
Attrs
(wrapper for dict), deprecated on 2012-09-18 - Convert README.md to rst in setup.py to make PyPI look nice (fixes #97)
- First version released by new maintainer @jieter
- Dropped support for Django 1.5 and 1.6, add python 3.5 with Django 1.8 and 1.9 to the build matrix (#273)
- Prevent
SingleTableView
from callingget_queryset
twice. (fixes #155) - Don't call managers when resolving accessors. (#214 by @mbertheau, fixes #211)
- Fix bug in retrieving
field.verbose_name
under Django 1.8.
- Remove
setup.cfg
as PyPI does not actually support it, instead it is a distutils2 thing that is been discontinued.
- Add
setup.cfg
to declareREADME.md
for PyPI.
- Convert README to markdown so it's formatted nicely on PyPI.
- Travis CI builds pass.
- Added Python 3.4 support.
- Added Django 1.7 and Django 1.8 support.
- Convert tests to using
py.test
.
- Django 1.8 fixes
BoundColumn.verbose_name
now only is capitalized only if no verbose_name was given.verbose_name
is used verbatim.- Add max_length attribute to person CharField
- Add Swedish translation
- Update docs presentation on readthedocs
- Add UK, Russian, Spanish, Portuguese, and Polish translations
- Add support for computed table
attrs
.
querystring
andseturlparam
template tags now require the request to be in the context (backwards incompatible) -- #127- Add Travis CI support
- Add support for Django 1.5
- Add L10N control for columns #120 (ignored in < Django 1.3)
- Drop Python 2.6.4 support in favor of Python 3.2 support
- Non-QuerySet data ordering is different between Python 3 and 2. When comparing different types, their truth values are now compared before falling back to string representations of their type.
- Add FileColumn.
- When resolving an accessor, all exceptions are smothered into
None
.
- Improve performance by removing unnecessary queries
- Simplified pagination:
Table.page
is an instance attribute (no longer@property
)- Exceptions raised by paginators (e.g.
EmptyPage
) are no longer smothered byTable.page
- Pagination exceptions are raised by
Table.paginate
RequestConfig
can handles pagination errors silently, can be disabled by includingsilent=False
in thepaginate
argument value
- Add
DateTimeColumn
andDateColumn
to handle formattingdatetime
and time zones. - Add
BooleanColumn
to handle bool values render_table
can now build and render a table for a QuerySet, rather than needing to be passed a table instance- Table columns created automatically from a model now use specialized columns
Column.render
is now skipped if the value is considered empty, the default value is used instead. Empty values are specified viaColumn.empty_values
, by default is(None, '')
(backward incompatible)- Default values can now be specified on table instances or
Table.Meta
- Accessor's now honor
alters_data
during resolving. Fixes issue that would delete all your data when a column had an accessor ofdelete
- Add
default
andvalue
to context ofTemplateColumn
- Add cardinality indication to the pagination area of a table
Attrs
is deprecated, usedict
instead
- Add
URLColumn
to render URLs in a data source into hyperlinks - Add
EmailColumn
to render email addresses into hyperlinks TemplateColumn
can now Django's template loaders to render from a file
- Fix more bugs on Python 2.6.4, all tests now pass.
- Fix issues for Python 2.6.4 -- thanks Steve Sapovits & brianmay
- Reduce Django 1.3 dependency to Table.as_html -- thanks brianmay
- Fix MANIFEST.in to include example templates, thanks TWAC.
- Upgrade django-attest to fix problem with tests on Django 1.3.1
- Fixed support for Django 1.4's paginator (thanks @koledennix)
- Some juggling of internal implementation.
TableData
now supports slicing and returns newTableData
instances.BoundRows
now takes a single argumentdata
(aTableData
instance). - Add support for
get_pagination
onSingleTableMixin
. SingleTableMixin
andSingleTableView
are now importable directly fromdjango_tables2
.
-
Renamed
BoundColumn.order_by
toorder_by_alias
and never returnsNone
(Backwards incompatible). Templates are affected if they use something like:{% querystring table.prefixed_order_by_field=column.order_by.opposite|default:column.name %}
Which should be rewritten as:
{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}
-
Added
next
shortcut toOrderBy
returned fromBoundColumn.order_by_alias
-
Added
OrderByTuple.get()
-
Deprecated
BoundColumn.sortable
,Column.sortable
,Table.sortable
,sortable
CSS class,BoundColumns.itersortable
,BoundColumns.sortable
; useorderable
instead ofsortable
. -
Added
BoundColumn.is_ordered
-
Introduced concept of an
order by alias
, see glossary in the docs for details.
- Fix bug that caused an ordered column's
<th>
to have no HTML attributes.
- Updated example project to add
colspan
on footer cell so table border renders correctly in Webkit. - Fix regression that caused 'sortable' class on .
Table.__init__
no longer always calls.order_by()
on QuerySets, fixes #55. This does introduce a slight backwards incompatibility.Table.order_by
now has the possibility of returningNone
, previously it would always return anOrderByTuple
.DeclarativeColumnsMetaclass.__new__
now uses `super()``- Testing now requires pylint and Attest >=0.5.3
- Fix regression that caused column verbose_name values that were marked as safe to be escaped. Now any verbose_name values that are instances of SafeData are used unmodified.
- Fix regression in
SingleTableMixin
. - Remove stray
print
statement.
SingleTableView
now usesRequestConfig
. This fixes issues withorder_by_field
,page_field
, andper_page_field
not being honored.- Add
Table.Meta.per_page
and changeTable.paginate
to use it as default. - Add
title
template filter. It differs from Django's built-intitle
filter because it operates on an individual word basis and leaves words containing capitals untouched. Warning: use{% load ... from ... %}
to avoid inadvertently replacing Django's built-intitle
template filter. BoundColumn.verbose_name
no longer doescapfirst
, capitalizing is now the responsibility ofColumn.header
.BoundColumn.__unicode__
now usesBoundColumn.header
rather thanBoundColumn.verbose_name
.
- Fix version in
setup.py
- Add support for column attributes (see Attrs)
- Add
BoundRows.items()
to yield(bound_column, cell)
pairs - Tried to make docs more concise. Much stronger promotion of using
RequestConfig
and{% querystring %}
- Removed random 'print' statements.
- Tweaked
paleblue
theme css to be more flexible:- removed
whitespace: no-wrap
- header background image to support more than 2 rows of text
- removed
- Fixed stupid import mistake. Tests did not pick it up due to them ignoring
ImportError
.
SingleTableView
now inherits fromListView
which enables automaticfoo_list.html
template name resolution (thanks dramon for reporting)render_table
template tag no suppresses exceptions whenDEBUG=True
- Fixed bug in render_table when giving it a template (issue #41)
- Added translation support in the default template via
{% trans %}
- Removed
basic_table.html
,Table.as_html()
now renderstable.html
but will clobber the query string of the current request. Use therender_table
template tag instead render_table
now supports an optional second argument -- the template to use when rendering the tableTable
now supports declaring which template to use when rendering to HTML- Django >=1.3 is now required
- Added support for using django-haystack's
SearchQuerySet
as a data source - The default template
table.html
now includes block tags to make it easy to extend to change small pieces - Fixed table template parsing problems being hidden due to a subsequent exception being raised
Http404
exceptions are no longer raised during a call toTable.paginate()
, instead it now occurs whenTable.page
is accessed- Fixed bug where a table could not be rendered more than once if it was paginated.
- Accessing
Table.page
now returns a new page every time, rather than reusing a single object
- Tables now support using both
sequence
andexclude
(issue #32). Sequence
class moved todjango_tables2/utils.py
.- Table instances now support modification to the
exclude
property. - Removed
BoundColumns._spawn_columns
. Table.data
,Table.rows
, andTable.columns
are now attributes rather than properties.