/django-admin-taggit-ui

This app provides a tag-filter and an admin-action to handle tags created with `taggit` within the django admin backend.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Welcome to django-admin-taggit-ui

python: 3.6, 3.7, 3.8, 3.9, 3.10 django: 2.2, 3.0, 3.1, 3.2, 4.0, 4.1 Run tests for django-admin-taggit-ui Coveralls

Description

This app is build in top of django-taggit and provides a tag-filter and an admin-action to handle tags with ease within django's admin backend.

Tag-Filter

The tag filter allows you to include and exclude mutliple tags as well as easily deleting tags.

Admin-Action

The admin action allows you to easily add and remove tags from objects.

Installation

Install from pypi.org:

pip install django-admin-taggit-ui

Setup

Add more_admin_filters to your installed apps:

INSTALLED_APPS = [
    'taggit_ui',
    ...
]

Extend your url_patterns in urls.py:

urlpatterns = [
    ...
    url(r'^', include('taggit_ui.urls')),
]

Add the TagFilter and manage_tag action to your ModelAdmin:

from taggit_ui.filters import TagFilter
from taggit_ui.actions import tag_manager

class MyModelAdmin(admin.ModelAdmin):
    ...
    list_filter = [
        TagFilter,
        ...
    ]
    actions = [
        tag_manager,
        ...
    ]

It is possible to optionally tag related items of other models using the admin action. Therefore initialize the TagManager` class with a ModelTree:

from taggit_ui.actions import TagManager
from modeltree import ModelTree

class MyModelAdmin(admin.ModelAdmin):
    ...
    actions = [
        TagManager(ModelTree),
        ...
    ]

The admin action will then render its form with all taggible related Models as checkbox fields and the count of related items belonging to these models.