Django admin helper classes for django-taggit tags
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
taggit_helpers
.bumpversion.cfg
.gitignore
CHANGELOG.rst
LICENSE
MANIFEST.in
README.rst
django-taggit-helpers.lightning-talk.2015-09-23.pdf
setup.cfg
setup.py

README.rst

django-taggit-helpers

django-taggit-helpers makes it easier to work with admin pages of models associated with django-taggit tags.

Source code is available on GitHub at mfcovington/django-taggit-helpers. Information about django-taggit is available on GitHub and Read the Docs.

django-taggit-helpers is compatible with Python 2.7+/3.2+ and Django 1.7+.

Installation

PyPI

pip install django-taggit-helpers

GitHub (development branch)

pip install git+http://github.com/mfcovington/django-taggit-helpers.git@develop

Configuration

Add taggit_helpers to INSTALLED_APPS in settings.py:

INSTALLED_APPS = (
    ...
    'taggit',
    'taggit_helpers',
)

Helper Classes

TaggitCounter

Display (and sort by) number of Taggit tags associated with tagged items.

from taggit_helpers import TaggitCounter
# For Django 1.9+, use this instead:
# from taggit_helpers.admin import TaggitCounter

class MyModelAdmin(TaggitCounter, admin.ModelAdmin):    # TaggitCounter before ModelAdmin
    list_display = (
        ...
        'taggit_counter',
    )

Note: Currently, the TaggableManager() field must be named tags.

Note: To avoid overcounting, set distinct=True if further annotating the queryset with Count():

queryset.annotate(m2m_field_count=Count('m2m_field', distinct=True))

TaggitListFilter

Filter records by Taggit tags for the current model only. Tags are sorted alphabetically by name.

from taggit_helpers import TaggitListFilter
# For Django 1.9+, use this instead:
# from taggit_helpers.admin import TaggitListFilter

class MyModelAdmin(admin.ModelAdmin):
    list_filter = [TaggitListFilter]

TaggitStackedInline

Add stacked inline for Taggit tags to admin. Tags are sorted alphabetically by name.

from taggit_helpers import TaggitStackedInline
# For Django 1.9+, use this instead:
# from taggit_helpers.admin import TaggitStackedInline

class MyModelAdmin(admin.ModelAdmin):
    inlines = [TaggitStackedInline]

TaggitTabularInline

Add tabular inline for Taggit tags to admin. Tags are sorted alphabetically by name.

from taggit_helpers import TaggitTabularInline
# For Django 1.9+, use this instead:
# from taggit_helpers.admin import TaggitTabularInline

class MyModelAdmin(admin.ModelAdmin):
    inlines = [TaggitTabularInline]

Upgrading existing projects to Django 1.9+

App loading was refactored in Django 1.9. To make a Django 1.7/1.8 app Django 1.9-compatible with respect to django-taggit-helpers, run the following shell command in your app's directory.

find . -name '*.py' | xargs perl -i -pe 's/from taggit_helpers import/from taggit_helpers.admin import/'

Thanks to jpic for the inspiration for this snippet!

Issues

If you experience any problems or would like to request a feature, please create an issue on GitHub.

Version 0.1.4