1.2.0 (2019-12-03) ~~~~~~~~~~--------
- Removed support for end-of-life Django 2.0 and 2.1.
- Added support for Django 3.0.
- Added support for Python 3.8.
- Moved
TaggedItemBase.tags_for()
to ItemBase. - Replaced reference to removed Django's
.virtual_fields
with.private_field
. - Added
TextareaTagWidget
.
- Added Finnish translation.
- Updated Chinese translation.
- Updated Esperanto translation.
- Fix
form.changed_data
to allow early access for a tags defined withblank=True
.
- Backwards incompatible: Remove support for Python 2.
- Added
has_changed()
method totaggit.forms.TagField
. - Added multi-column unique constraint to model
TaggedItem
on fieldscontent_type
,object_id
, andtag
. Databases that contain duplicates will need to add a data migration to resolve these duplicates. - Fixed
TaggableManager.most_common()
to always evaluate lazily. Allows placing a.most_common()
query at the top level of a module. - Fixed setting the
related_name
on a tags manager that exists on a model namedName
.
- The project has moved to Jazzband. This is the first release under the new organization. The new repository URL is https://github.com/jazzband/django-taggit.
- Added support for Django 2.2.
- Fixed a race condition in
TaggableManager
. - Removed method
ItemBase.bulk_lookup_kwargs()
. - Fixed view
tagged_object_list
to setqueryset.model
asListView.model
(was previously set as aContentType
instance). _TaggableManager
andTaggableManager
now always call the parent class__init__
.- Removed
TaggableRel
and replaced uses withManyToManyRel
.
- Backwards incompatible: Remove support for Django < 1.11
- Added support for Django 2.1 and Python 3.7
- Moved TagWidget value conversion from TagWidget.render() to TagWidget.format_value()
- Added support for Django 2.0
- Backwards incompatible: Dropped support for EOL Python 3.3
- Update spanish translation
- Add testing for Django 1.11 and Python 3.6
- introduce isort and flake8 in the CI
- [docs] Fixed links to external apps
- Improved auto-slug in TagBase to support UUID pk
- [docs] Added contribution guidelines
- Backwards incompatible: Drop support for Django 1.7
- Fix case-insensitive tag creation when setting to a mix of new and existing tags are used
- Check for case-insensitive duplicates when creating new tags
- Support __gt__ and __lt__ ordering on Tags
- Fix list view
- Update Python version classifiers in setup.py
- Add Greek translation
- Document supported versions of Django; fix Travis to test these versions.
- Fix form tests on Django 1.10
- Address list_display and fieldsets in admin docs
- external_apps.txt improvements
- Remove support for Django 1.4-1.6, again.
- Add extra_filters argument to the manager's most_common method
- Specify app_label for Tag and TaggedItem
- Fix UnboundLocalError in _TaggableManager.set(..)
- Update doc links to reflect RTD domain changes
- Improve Russian translations
- Add app config, add simplified Chinese translation file
- Implementation of m2m_changed signal sending
- Code and tooling improvements
- Added Spanish and Turkish translations
- Add the min_count parameter to managers.most_common function
- Address deprecation warnings
- Add option to override default tag string parsing
- Drop support for Python 2.6
- Silence Django 1.9 warning
- Django 1.9 compatibility fix
- Allows custom Through Model with GenericForeignKey
- Silence Django 1.9 warning about on_delete
- Django 1.9 beta compatibility
- Fix unknown column object_id issue with Django 1.6+
- Database index added on TaggedItem fields content_type & object_id
- Access default manager via class instead of instance
- Prevent IntegrityError with custom TagBase classes
- Fix an admin bug related to the Manager property through_fields
- Fix bug that assumed all primary keys are named 'id'
- Add option to allow case-insensitive tags
- Fix wrong slugs for non-latin chars. Only works if optional GPL dependency (unidecode) is installed.
- Prevent extra JOIN when prefetching
- Prevent _meta warnings with Django 1.8
- Django 1.8 support
- Specify that the internal type of the TaggitManager is a ManyToManyField
- Fixed 1.7 migrations.
- Final (hopefully) fixes for the upcoming Django 1.7 release.
- Added Japanese translation.
- Backwards incompatible: Support for Django 1.7 migrations. South users
have to set
SOUTH_MIGRATION_MODULES
to usetaggit.south_migrations
for taggit. - Backwards incompatible: Django's new transaction handling is used on Django 1.6 and newer.
- Backwards incompatible:
Tag.save
got changed to opportunistically try to save the tag and if that fails fall back to selecting existing similar tags and retry -- if that fails too anIntegrityError
is raised by the database, your app will have to handle that. - Added Italian and Esperanto translations.
- Forbid multiple TaggableManagers via generic foreign keys.
- Fixed support for Django 1.4 and 1.5.
- Added support for prefetch_related on tags fields.
- Fixed support for Django 1.7.
- Made the tagging relations unserializeable again.
- Allow more than one TaggableManager on models (assuming concrete FKs are
- used for the relations).
- Support for Django 1.6 and 1.7.
- Python3 support
- Backwards incompatible: Dropped support for Django < 1.4.5.
- Tag names are unique now, use the provided South migrations to upgrade.
- Backwards incompatible: Forms containing a :class:`TaggableManager` by
default now require tags, to change this provide
blank=True
to the :class:`TaggableManager`. - Now works with Django 1.3 (as of beta-1).
- Added a Hebrew locale.
- Added an index on the
object_id
field ofTaggedItem
. - When displaying tags always join them with commas, never spaces.
- The docs are now available online.
- Custom
Tag
models are now allowed. - Backwards incompatible: Filtering on tags is no longer
filter(tags__in=["foo"])
, it is writtenfilter(tags__name__in=["foo"])
. - Added a German locale.
- Added a Dutch locale.
- Removed
taggit.contrib.suggest
, it now lives in an external application, - see :doc:`external_apps` for more information.
- Removed
- Fixed querying for objects using
exclude(tags__in=tags)
. - Marked strings as translatable.
- Added a Russian translation.
- Created a mailing list.
- Smarter tagstring parsing for form field; ported from Jonathan Buchanan's django-tagging. Now supports tags containing commas. See :ref:`tags-in-forms` for details.
- Switched to using savepoints around the slug generation for tags. This
ensures that it works fine on databases (such as Postgres) which dirty a
transaction with an
IntegrityError
. - Added Python 2.4 compatibility.
- Added Django 1.1 compatibility.