Change log¶
2.7.5 (2025-01-02)¶
Update django.po for Ukrainian 🇺🇦 (#934) by @DmytroLitvinov
2.7.4 & 2.7.3 (2024-12-23)¶
Correct packaging mistakes:
Remove upper bound for
python_requires
2.7.2 (2024-12-23)¶
2.7.1 (2024-12-21)¶
Add TimeColumn to built-in columns (#937) by @philipphanemann Add support to pass args/kwargs to callables from Accessor (#940), fixes: #939 by @JordanHyatt
Drop support for Django 3.2, 4.1 and python 3.8
Add support for Django 5.1 and python 3.12
Explicitly set
Column.accessorwhen binding a column to allow column methods likeorder_byto use its value (#979)
2.7.0 (2023-12-05)¶
Update docs dependencies; fix docs search; add readthedocs.yaml (#935)
Add example on how to use
Accessorto documentation incustom-data.rst(#917) by @ruddraUse pre-commit in ci, add isort, flake8, pyupgrade (#932)
Add support for Django 5.0 and Python 3.12 (#930)
Add missing
{% load l10n %}in templates (#919) by @tvanekeris
2.6.0 (2023-06-27)¶
Fix bootstrap5-responsive template to extend bootstrap5 (#909) by @mschoettle
Add support for django 4.2
Drop python 3.7 and django 4.0 support (#920)
2.5.3 (2023-03-05)¶
Assign request to table before anything else in
RequestConfig.configure()(#888) fixes: #865Add 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
2.5.2 (2023-02-07)¶
2.5.1 (2023-01-07)¶
TableMixinBase: implementget_paginate_by(#811) by @Alirezaja1384
2.5.0 (2022-12-27)¶
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 @wsldankersAdd template
bootstrap5.htmlto support bootstrap 5 (#880, fixes #796
2.4.1 (2021-10-04)¶
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)
2.4.0 (2021-05-15)¶
Add support for django 3.2 and python 3.9, drop support for django 3.0
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
2.3.4 (2021-01-10)¶
Removed deprecation warnings with django==3.1 regarding
JSONField#785
2.3.3 (2020-10-29)¶
2.3.2 (2020-10-10)¶
Fix popping the extra_context of TemplateColumn #767 by @bernhardmiller
Fix typo for the translation of the word ‘next’ in greek [#759]](https://github.com/jieter/django-tables2/pull/759) by @orfeasa
Add
format_htmlimport to preventNameError#752 by @MBfromOKFixed Russian translation #768 by @Real-Gecko
2.3.1 (2020-04-02)¶
Fixed the
LazyPaginatorin a simpler more predictable way: an attempt to show a non-existent page, shows the first page. #743
2.3.0 (2020-03-31)¶
Add ability to pass
tablib.DatasetkwargsviaTableExportandExportMixin#720 by @powderflaskDrop django==2.1 support, add optional tablib requirements #738
Short-circuit
Accessor.resolve()if the context contains the exact accessor #722, fixes #717Fixed yaml export #732 by @sg3-141-592
Made Table docstring visible in docs #742
Removed the TableBase construct in favor of using the
metaclasskeyword argument, as all supported python versions support it. #742LazyPaginatorwith non-existent page number should not result in a crash #741
2.2.1 (2019-11-20)¶
Fix backwards-compatibility with legacy separators in order_by clauses (#715 by @federicobond)
2.2.0 (2019-11-18)¶
Use
__as accessor-separator, addlinkifyMeta option #702). This will currently emit a warning but falls back to using.as separator. The next major version will raise aValueErrorif used with.as separator.Add request attribute to table instance (#705 by @rubickcz).
Append ellipsis for
LazyPaginatorif not on last page (#707 by @tuky)
2.1.1 (2019-09-23)¶
2.1.0 (2019-07-22)¶
Dropped support for python 2.7 (and django 1.11).
Removed
django_tables2.utils.ucfirst, usedjango.utils.text.capfirstinstead.Removed
class="thead-default"from bootstrap4 template (#671)Included columns with
visible=Falsein export (#677)Fixed pagination when the number of pages is equal to page range plus one (#655)
2.0.6 (2019-03-26)¶
Add optional ‘table’ kwarg to
row_attrscallables
2.0.5 (2019-02-21)¶
2.0.4 (2019-01-21)¶
The
ValueErrorraised if the QuerySet passed to a table instance did not match the value declared inMeta.modelis now turned into a warning (fixes #643)Make sure the templates do not raise errors when
thead/tfootattributes are not defined #624 by @intiocean
2.0.3 (2018-11-11)¶
2.0.2 (2018-10-22)¶
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
2.0.1 (2018-09-13)¶
Fixed a regression which did not allow
Table.Meta.order_byto be a list.
2.0.0 (2018-09-13)¶
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.
2.0.0b5 (2018-08-29)¶
Change order of logic in
get_table_paginationto make sure we are able to override the paginator usingView.paginator_classattribute.
2.0.0b4 (2018-08-29)¶
The
klassargument toTable.paginate()is renamed topaginator_classTable views/mixins now take
ListViewattributespaginator_classandpaginate_orphansinto account.
2.0.0b3 (2018-08-27)¶
Fixed a bug in the implementation of #606
2.0.0b2 (2018-08-27)¶
Added the ability to change the html attributes for
thead,tbody,tfoottags #606 by @roelbouwman
2.0.0b1 (2018-08-24)¶
Added
LazyPaginatorto prevent making.count()queries (#604).
2.0.0a5 (2018-07-28)¶
Added
linkify_itemkeyword argument toManyToManyColumn, fixes #594Fixed an encoding issue in
README.mdpreventing installation in some environments.
2.0.0a4 (2018-07-17)¶
Add
linkifykeyword argument to all columns, to allow wrapping the content in a<a>tag. It accepts one of these ways to define the link:Trueto 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 ofLinkColumnandRelatedLinkColumshould still work. #590
2.0.0a3 (2018-05-24)¶
Hello from DjangoCon Europe!
2.0.0a2 (2018-04-13)¶
Another round of template cleanup.
Fresh screenshots
Prevent crash in
RelatedLinkColumnfor records withoutget_absolute_url().Raise
ValueErrorwhenTable.Meta.model != QuerySet.Model.Raise
TypeErrorwhen incorrect types are used forTable.Metaattributes (fixes #517)Fix:
Table.Meta.sequencewithextra_columnscan leads toKeyError(fixes #486)
2.0.0a1 (2018-04-12)¶
Fixed translation of ‘previous’ for some languages (fixes #563)
django-tables2 2.0.0a0 (2018-04-10)¶
Cleaned up templates to add consistency in what is presented across all templates.
Added bootstrap4.html template
Fixed translation inconsistencies.
breaking changes 2.0.0¶
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
templateargument to the table constructor, usetemplate_nameinstead.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_names 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)
1.21.2 (2018-03-26)¶
Moved table instantiation from
get_context_datatoget_tables#554 by @sdolemeliponePass request as kwarg to
template.render(), rather than as part of context. (fixes #552)
1.21.1 (2018-03-12)¶
Do not perform extra
COUNT()queries for non-paginated tables. Fixes #551
1.21.0 (2018-03-12)¶
Add new method
paginated_rowstoTableto 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. Thetablevariable has an attributecontext, which is the context of the calling template. Use{{ table.context.variable }}instead of{{ variable }}.
1.20.0 (2018-03-08)¶
1.19.0 (2018-02-02)¶
BoundColumn.attrsdoes not evaluatecurrent_valueasbool#536 by @pachewise (fixes #534)Allow more flexible access to cell values (especially useful for django templates) (fixes #485)
1.18.0 (2018-01-27)¶
1.17.1 (2017-12-14)¶
Fix typo in setup.py for
extras_require.
1.17.0 (2017-12-14)¶
Dropped support for Django 1.8, 1.9 and 1.10.
Use
django.test.TestCasefor all tests, and remove dependency on pytest and reorganized some tests #515Remove traces of django-haystack tests from the tests, there were no actual tests.
1.16.0 (2017-11-27)¶
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
tfdictionary toColumn.attrswith default values for the footer, so footers now haveclassattribute by default #501 by @mpasternak
1.15.0 (2017-11-23)¶
Added
as=varnamekeyword argument to the{% querystring %}template tag, fixes #481Updated the tutorial to reflect current state of Django a bit better.
Used
OrderedDictrather thandictas the parent forutils.AttributeDictto make the rendered html more consistent across python versions.Allow reading column
attrsfrom a column’s attribute, allowing easier reuse of custom column attributes (fixes #241)valueandrecordare optionally passed to the column attrs callables for data rows. #503, fixes #500
1.14.2 (2017-10-30)¶
Added a
row_countervariable to the template context inTemplateColumn(fixes #448)
1.14.1 (2017-10-30)¶
Do not fail if
orderable=Falseis passed toManyToManyColumn()
1.14.0 (2017-10-30)¶
Added
separatorargument toManyToManyColumn.Allow
mark_safe()’d strings fromManyToManyColumn.tranform()Disabled ordering on
ManyToManyColumnsby default.
1.13.0 (2017-10-17)¶
Made positional
dataargument to the table__init__()a keyword argument to make inheritance easier. Will raise aTypeErrorif omitted.
1.12.0 (2017-10-10)¶
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)
1.11.0 (2017-09-15)¶
Added TemplateColumn.value() and enhanced export docs (fixes #470)
Fixed display of pinned rows if table has no data. #477 by @khirstinova
1.10.0 (2017-06-30)¶
Added
ManyToManyColumnautomatically added forManyToManyFields.
1.9.1 (2017-06-29)¶
1.9.0 (2017-06-22)¶
1.8.0 (2017-06-17)¶
Feature: Added an
ExportMixinto export table data in various export formats (CSV, XLS, etc.) using tablib.Defer expanding
Meta.sequencetoTable.__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
1.7.1 (2017-06-02)¶
Call before_render when rendering with the render_table template tag (fixes #447)
1.7.0 (2017-06-01)¶
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_columnsargument. Fixes #403, #70Added a hook
before_renderto 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_pluralif it exists to name the items in the list. (fixes #166)
1.6.1 (2017-05-08)¶
Add missing pagination to the responsive bootstrap template (#440 by @tobiasmcnulty)
1.6.0 (2017-05-01)¶
Add new template
bootstrap-responsive.htmlto generate a responsive bootstrap table. (Fixes #436)
1.5.0 (2017-04-18)¶
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
JSONColumnfor data in JSON format.Added
__all__indjango_tables2/__init__.pyanddjango_tables2/columns/__init__.pyAdded a setting
DJANGO_TABLES2_TEMPLATEto allow project-wide overriding of the template used to render tables (fixes #434).
1.4.2 (2017-03-06)¶
1.4.1 (2017-02-27)¶
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)
1.4.0 (2017-02-27)¶
1.3.0 (2017-01-20)¶
Implement method
Table.as_values()to get it’s raw values. #394 by @intiocean
1.2.9 (2016-12-21)¶
1.2.8 (2016-12-21)¶
1.2.7 (2016-12-12)¶
Apply
titleto a column’sverbose_namewhen it is derived from a model, fixes #249. (#382 by @shawnnapora)Update documentation after deprecation of
STATIC_URLin django (#384, by @velaia)Cleanup of the templates, making the output more equal (#381 by @ralgozino)
Use new location for
urlresolversin Django and add backwards compatible import (#388 by @felixxm)Fix a bug where using
sequenceand thenexcludein a child table would result in aKeyErrorSome documentation fixes and cleanups.
1.2.6 (2016-09-06)¶
Added
get_table_kwargs()method toSingleTableMixinto allow passing custom keyword arguments to theTableconstructor. (#366 by @fritz-k)Allow the children of
TableBaserender in the{% render_table %}template tag. (#377 by @shawnnapora)Refactor
BoundColumnattributes 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.
1.2.5 (2016-07-30)¶
Fixed an issue preventing the rest of the row being rendered if a
BooleanColumnwas in the table for a model without custom choices defined on the model field. (#360)
1.2.4 (2016-07-28)¶
Added Norwegian Locale (#356 by @fanzypantz)
Restore default pagination for
SingleTableMixin, fixes #354 (#395 by @graup)
1.2.3 (2016-07-05)¶
v1.2.2 (2016-06-04)¶
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
excludein combination withsequenceraised a KeyError (#341, issue #205)
v1.2.1 (2016-05-09)¶
table footers (#323)
Non-field based
LinkColumnonly renders default value if lookup fails. (#322)Accept
textparameter 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_bybefore before trying to access it. (fixes #326)
v1.2.0 (2016-05-02)¶
Allow custom attributes for rows (fixes #47)
v1.1.8 (2016-05-02)¶
Ability to change the body of the
<a>-tag, by passingtextkwarg 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)
v1.1.7 (2016-04-26)¶
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)
v1.1.6 (2016-04-02)¶
Correct error message about request context processors for current Django (#314)
Skipped 1.1.5 due to an error while creating the tag.
v1.1.4 (2016-03-22)¶
Fix broken
setup.pyif Django is not installed before django-tables2 (fixes #312)
v1.1.3 (2016-03-21)¶
Drop support for Django 1.7
Add argument to
CheckBoxColumnto render it as checked (original PR: #208)
v1.1.2 (2016-02-16)¶
Fix
BooleanColumnwith choices set will always render as ifTrue(#301)Fix a bug with
TemplateColumnwhile using cached template loader (#75)
v1.1.1 (2016-01-26)¶
Allow
Meta.fieldsto 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()
v1.1.0 (2016-01-19)¶
Add tests for
TimeColumnRemove
sortableargument forTableand Column constructors and its associated methods. Deprecated since 2012.Remove deprecated aliases for
attrsinCheckboxColumn.Remove deprecated
OrderByTuplecmpmethod (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.
v1.0.7 (2016-01-03)¶
Explicitly check if
column.verbose_nameis not None to support empty column headers (fixes #280)Cleanup the example project to make it work with modern Django versions.
Do not sort
QuerySetwhenorderable=False(#204 by @bmihelac)show_headerattribute onTableallows disabling the header (#175 by @kviktor)LinkColumnnow tries to callget_absolute_urlon a record if noviewnameis provided (#283, fixes #231).Add
requestargument toTable.as_html()to allow passing correct request objects instead of poorly generated ones #282Add coverage reporting to build #282
Drop support for python 3.2 (because of coverage), support ends February 2016 #282
move
build_requestfromdjango_table2.utilstotests.utilsand amend tests #282
v1.0.6 (2015-12-29)¶
Support for custom text value in
LinkColumn(#277 by @toudi)Refactor
LinkColumn.render_link()to not escape twice #279Removed
Attrs(wrapper for dict), deprecated on 2012-09-18Convert README.md to rst in setup.py to make PyPI look nice (fixes #97)
v1.0.5 (2015-12-17)¶
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
SingleTableViewfrom callingget_querysettwice. (fixes #155)Don’t call managers when resolving accessors. (#214 by @mbertheau, fixes #211)
v1.0.4 (2015-05-09)¶
Fix bug in retrieving
field.verbose_nameunder Django 1.8.
v1.0.3¶
Remove
setup.cfgas PyPI does not actually support it, instead it is a distutils2 thing that is been discontinued.
v1.0.2¶
Add
setup.cfgto declareREADME.mdfor PyPI.
v1.0.1¶
Convert README to markdown so it’s formatted nicely on PyPI.
v1.0.0¶
Travis CI builds pass.
Added Python 3.4 support.
Added Django 1.7 and Django 1.8 support.
Convert tests to using
py.test.
v0.16.0¶
Django 1.8 fixes
BoundColumn.verbose_namenow only is capitalized only if no verbose_name was given.verbose_nameis used verbatim.Add max_length attribute to person CharField
Add Swedish translation
Update docs presentation on readthedocs
v0.15.0¶
Add UK, Russian, Spanish, Portuguese, and Polish translations
Add support for computed table
attrs.
v0.14.0¶
querystringandseturlparamtemplate tags now require the request to be in the context (backwards incompatible) – #127Add 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.
v0.13.0¶
Add FileColumn.
v0.12.1¶
When resolving an accessor, all exceptions are smothered into
None.
v0.12.0¶
Improve performance by removing unnecessary queries
Simplified pagination:
Table.pageis an instance attribute (no longer@property)Exceptions raised by paginators (e.g.
EmptyPage) are no longer smothered byTable.pagePagination exceptions are raised by
Table.paginateRequestConfigcan handles pagination errors silently, can be disabled by includingsilent=Falsein thepaginateargument value
Add
DateTimeColumnandDateColumnto handle formattingdatetimeand time zones.Add
BooleanColumnto handle bool valuesrender_tablecan now build and render a table for a QuerySet, rather than needing to be passed a table instanceTable columns created automatically from a model now use specialized columns
Column.renderis 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.MetaAccessor’s now honor
alters_dataduring resolving. Fixes issue that would delete all your data when a column had an accessor ofdeleteAdd
defaultandvalueto context ofTemplateColumnAdd cardinality indication to the pagination area of a table
Attrsis deprecated, usedictinstead
v0.11.0¶
Add
URLColumnto render URLs in a data source into hyperlinksAdd
EmailColumnto render email addresses into hyperlinksTemplateColumncan now Django’s template loaders to render from a file
v0.10.4¶
Fix more bugs on Python 2.6.4, all tests now pass.
v0.10.3¶
Fix issues for Python 2.6.4 – thanks Steve Sapovits & brianmay
Reduce Django 1.3 dependency to Table.as_html – thanks brianmay
v0.10.2¶
Fix MANIFEST.in to include example templates, thanks TWAC.
Upgrade django-attest to fix problem with tests on Django 1.3.1
v0.10.1¶
Fixed support for Django 1.4’s paginator (thanks @koledennix)
Some juggling of internal implementation.
TableDatanow supports slicing and returns newTableDatainstances.BoundRowsnow takes a single argumentdata(aTableDatainstance).Add support for
get_paginationonSingleTableMixin.SingleTableMixinandSingleTableVieware now importable directly fromdjango_tables2.
v0.10.0¶
Renamed
BoundColumn.order_bytoorder_by_aliasand 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
nextshortcut toOrderByreturned fromBoundColumn.order_by_aliasAdded
OrderByTuple.get()Deprecated
BoundColumn.sortable,Column.sortable,Table.sortable,sortableCSS class,BoundColumns.itersortable,BoundColumns.sortable; useorderableinstead ofsortable.Added
BoundColumn.is_orderedIntroduced concept of an
order by alias, see glossary in the docs for details.
v0.9.6¶
Fix bug that caused an ordered column’s
<th>to have no HTML attributes.
v0.9.5¶
Updated example project to add
colspanon 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_bynow 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
v0.9.4¶
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.
v0.9.3¶
Fix regression in
SingleTableMixin.Remove stray
printstatement.
v0.9.2¶
SingleTableViewnow usesRequestConfig. This fixes issues withorder_by_field,page_field, andper_page_fieldnot being honored.Add
Table.Meta.per_pageand changeTable.paginateto use it as default.Add
titletemplate filter. It differs from Django’s built-intitlefilter 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-intitletemplate filter.BoundColumn.verbose_nameno longer doescapfirst, capitalizing is now the responsibility ofColumn.header.BoundColumn.__unicode__now usesBoundColumn.headerrather thanBoundColumn.verbose_name.
v0.9.1¶
Fix version in
setup.py
v0.9.0¶
Add support for column attributes (see Attrs)
Add
BoundRows.items()to yield(bound_column, cell)pairsTried to make docs more concise. Much stronger promotion of using
RequestConfigand{% querystring %}
v0.8.4¶
Removed random ‘print’ statements.
Tweaked
palebluetheme css to be more flexible:removed
whitespace: no-wrapheader background image to support more than 2 rows of text
v0.8.3¶
Fixed stupid import mistake. Tests did not pick it up due to them ignoring
ImportError.
v0.8.2¶
SingleTableViewnow inherits fromListViewwhich enables automaticfoo_list.htmltemplate name resolution (thanks dramon for reporting)render_tabletemplate tag no suppresses exceptions whenDEBUG=True
v0.8.1¶
Fixed bug in render_table when giving it a template (issue #41)
v0.8.0¶
Added translation support in the default template via
{% trans %}Removed
basic_table.html,Table.as_html()now renderstable.htmlbut will clobber the query string of the current request. Use therender_tabletemplate tag insteadrender_tablenow supports an optional second argument – the template to use when rendering the tableTablenow supports declaring which template to use when rendering to HTMLDjango >=1.3 is now required
Added support for using django-haystack’s
SearchQuerySetas a data sourceThe default template
table.htmlnow includes block tags to make it easy to extend to change small piecesFixed table template parsing problems being hidden due to a subsequent exception being raised
Http404exceptions are no longer raised during a call toTable.paginate(), instead it now occurs whenTable.pageis accessedFixed bug where a table could not be rendered more than once if it was paginated.
Accessing
Table.pagenow returns a new page every time, rather than reusing a single object
v0.7.8¶
Tables now support using both
sequenceandexclude(issue #32).Sequenceclass moved todjango_tables2/utils.py.Table instances now support modification to the
excludeproperty.Removed
BoundColumns._spawn_columns.Table.data,Table.rows, andTable.columnsare now attributes rather than properties.