Skip to main content

Django admin helper classes for django-taggit tags

Project description

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

Revision history

0.1.4 2015-12-04

  • Add Django 1.9 compatibility

0.1.3 2015-11-30

  • Require Python 2.7+/3.2+

  • Add slides from Django SF Meetup lightning talk

0.1.2 2015-06-14

  • Add Django 1.8 compatibility

0.1.1 2015-06-11

  • Rename taggit_count to taggit_counter

0.1.0 2015-06-10

  • Django admin helper classes for django-taggit tags

    • TaggitCounter

    • TaggitListFilter

    • TaggitStackedInline

    • TaggitTabularInline

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-taggit-helpers-0.1.4.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

django_taggit_helpers-0.1.4-py2.py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page