django-tagging-autocomplete-new is a jquery based autocomplete solution for django-tagging.
This is fixed version of django-tagging-autocomplete by @ludwiktrammer for Django 2.2.
django-tagging
- Install package from PyPI:
pip install django-tagging-autocomplete-new
- Add
tagging
andtagging-autocomplete-new
to installed apps in your's project's settings:
INSTALLED_APPS = [
...
'tagging',
'tagging_autocomplete_new',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
...
]
- Add route to your project's
urls.py
file:
path('tagging_autocomplete_new/', include('tagging_autocomplete_new.urls'))
You can use TagAutocompleteField()
to enable autocompletion right in your
models.py
. In most cases this is the easiest solution:
from django.db import models
from tagging_autocomplete_new.models import TagAutocompleteField
class SomeModel(models.Model):
tags = TagAutocompleteField()
Alternatively you can use the TagAutocomplete()
form widget while creating
your form:
from django import forms
from tagging.forms import TagField
from tagging_autocomplete_new.widgets import TagAutocomplete
class SomeForm(forms.Form):
tags = TagField(widget=TagAutocomplete())
By default the maximum number of results suggested by the autocompletion is 100.
You can modify this number by adding to your settings.py
project file
the TAGGING_AUTOCOMPLETE_MAX_RESULTS
constant.
For example:
TAGGING_AUTOCOMPLETE_MAX_RESULTS = 5
By default autocompletion suggests tags that start with a given term.
In case you need to show ones that contain the given term,
set TAGGING_AUTOCOMPLETE_SEARCH_CONTAINS
to True
.
For example:
TAGGING_AUTOCOMPLETE_SEARCH_CONTAINS = True
By default suggestions are shown right after you enter first character.
You can configure this behaviour using TAGGING_AUTOCOMPLETE_MIN_LENGTH
.
For example:
TAGGING_AUTOCOMPLETE_MIN_LENGTH = 3