django-tagging 0.5.0
Generic tagging application for Django
License: BSD License
Keywords: django,tag,tagging

==============
Django Tagging
==============

|travis-develop| |coverage-develop|

This is a generic tagging application for Django projects

https://django-tagging.readthedocs.io/

Note that this application version requires Python 3.5 or later, and Django
1.11 or later. You can obtain Python from http://www.python.org/ and
Django from http://www.djangoproject.com/.

.. |travis-develop| image:: https://travis-ci.org/Fantomas42/django-tagging.png?branch=develop
   :alt: Build Status - develop branch
   :target: http://travis-ci.org/Fantomas42/django-tagging
.. |coverage-develop| image:: https://coveralls.io/repos/Fantomas42/django-tagging/badge.png?branch=develop
   :alt: Coverage of the code
   :target: https://coveralls.io/r/Fantomas42/django-tagging

========================
Django Tagging Changelog
========================

Version 0.5.0, 6th March 2020:
------------------------------

* Drop support for Python 2.
* Compatiblity fix for Django 2.2 and Django 3.0.

Version 0.4.6, 14th October 2017:
---------------------------------

* Fix IntegrityError while saving inconsistent tags
* Update tag name length to use MAX_TAG_LENGTH setting

Version 0.4.5, 6th September 2016:
----------------------------------

* Fix on the previous compatiblity fix.

Version 0.4.4, 5th September 2016:
----------------------------------

* Compatiblity fix for Django 1.10

Version 0.4.3, 3rd May 2016:
----------------------------

* Add missing migration for ``on_delete``

Version 0.4.2, 2nd May 2016:
----------------------------

* Fix tag weight
* Reduce warnings for recent versions of Django

Version 0.4.1, 15th January 2016:
---------------------------------

* Typo fixes
* Support apps

Version 0.4, 15th June 2015:
----------------------------

* Modernization of the package

Version 0.3.6, 13th May 2015:
-----------------------------

* Corrected initial migration

Version 0.3.5, 13th May 2015:
-----------------------------

* Added support for Django 1.8
* Using migrations to fix syncdb
* Rename get_query_set to get_queryset
* Import GenericForeignKey from the new location

Version 0.3.4, 7th November 2014:
---------------------------------

* Fix unicode errors in admin

Version 0.3.3, 15th October 2014:
---------------------------------

* Added support for Django 1.7

Version 0.3.2, 18th February 2014:
----------------------------------

* Added support for Django 1.4 and 1.5
* Added support for Python 2.6 to 3.3
* Added tox to test and coverage

Version 0.3.1, 22nd January 2010:
---------------------------------

* Fixed Django 1.2 support (did not add anything new)
* Fixed #95 - tagging.register won't stomp on model attributes

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
http://django-tagging.googlecode.com/files/tagging-0.2.zip

* 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
  object.

* 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
  backends.

* 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
http://django-tagging.googlecode.com/files/tagging-0.1.zip

* First packaged version using distutils.