1. Ian George
  2. django-tagging


django-tagging / CHANGELOG.txt

Django Tagging Changelog

SVN Trunk Changes:

Version 0.3.0, 22nd August 2009:

* Fixes for Django 1.0 compatibility.

* Added a ``tagging.generic`` module for working with list of objects
  which have generic relations, containing a ``fetch_content_objects``
  function for retrieving content objects for a list of ``TaggedItem``s
  using ``number_of_content_types + 1`` queries rather than the
  ``number_of_tagged_items * 2`` queries you'd get by iterating over the
  list and accessing each item's ``object`` attribute.

* Added a ``usage`` method to ``ModelTagManager``.

* ``TaggedItemManager``'s methods now accept a ``QuerySet`` or a
  ``Model`` class. If a ``QuerySet`` is given, it will be used as the
  basis for the ``QuerySet``s the methods return, so can be used to
  restrict results to a subset of a model's instances. The 
  `tagged_object_list`` generic view and ModelTaggedItemManager``
  manager have been updated accordingly.

* Removed ``tagging\tests\runtests.py``, as tests can be run with
  ``django-admin.py test --settings=tagging.tests.settings``.

* A ``tagging.TagDescriptor`` is now added to models when registered.
  This returns a ``tagging.managers.ModelTagManager`` when accessed on a
  model class, and provide access to and control over tags when used on
  an instance.

* Added ``tagging.register`` to register models with the tagging app.
  Initially, a ``tagging.managers.ModelTaggedItemManager`` is added for
  convenient access to tagged items.

* Moved ``TagManager`` and ``TaggedItemManager`` to ``models.py`` - gets
  rid of some import related silliness, as ``TagManager`` needs access
  to ``TaggedItem``.

Version 0.2.1, 16th Jan 2008:

* Fixed a bug with space-delimited tag input handling - duplicates
  weren't being removed and the list of tag names wasn't sorted.

Version 0.2, 12th Jan 2008:

Packaged from revision 122 in Subversion; download at

* Added a ``tag_cloud_for_model`` template tag.

* Added a ``MAX_TAG_LENGTH`` setting.

* Multi-word tags are here - simple space-delimited input still works.
  Double quotes and/or commas are used to delineate multi- word tags.
  As far as valid tag contents - anything goes, at least initially.

* BACKWARDS-INCOMPATIBLE CHANGE - ``django.utils.get_tag_name_list`` and
  related regular expressions have been removed in favour of a new tag
  input parsing function, ``django.utils.parse_tag_input``.

* BACKWARDS-INCOMPATIBLE CHANGE - ``Tag`` and ``TaggedItem`` no longer
  declare an explicit ``db_table``. If you can't rename your tables,
  you'll have to put these back in manually.

* Fixed a bug in calculation of logarithmic tag clouds - ``font_size``
  attributes were not being set in some cases when the least used tag in
  the cloud had been used more than once.

* For consistency of return type, ``TaggedItemManager.get_by_model`` now
  returns an empty ``QuerySet`` instead of an empty ``list`` if
  non-existent tags were given.

* Fixed a bug caused by ``cloud_for_model`` not passing its
  ``distribution`` argument to ``calculate_cloud``.

* Added ``TaggedItemManager.get_union_by_model`` for looking up items
  tagged with any one of a list of tags.

* Added ``TagManager.add_tag`` for adding a single extra tag to an

* Tag names can now be forced to lowercase before they are saved to the
  database by adding the appropriate ``FORCE_LOWERCASE_TAGS`` setting to
  your project's settings module. This feature defaults to being off.

* Fixed a bug where passing non-existent tag names to
  ``TaggedItemManager.get_by_model`` caused database errors with some

* Added ``tagged_object_list`` generic view for displaying paginated
  lists of objects for a given model which have a given tag, and
  optionally related tags for that model.

Version 0.1, 30th May 2007:

Packaged from revision 79 in Subversion; download at

* First packaged version using distutils.