Hello, my name is Federico Capoano,
I enjoy developing cutting-edge websites
and working with creative people.
This is an attempt to a django reusable app that aims to be functional but flexible.
It's based on django-tagging-autocomplete and depends on django-tagging.
I wanted to implement this functionality in my django projects for some time now and I finally had the chance to work on a project that has this requirement in the specification.
I spent some time trying different plugins and in the end I've chosen jQuery Tag-it (jQuery UI widget) as it is the one that looks most well written to me.
I still needed some more functionalities which were missing in the original jQuery Tag-it plugin so I forked it, added few lines of code and pulled commits from anoter forked repository in order to add some more goodies (maximum tag length and maximum number of tags).
The code is still unstable, I will probably change few things but you could start using it so we can improve it together. Feel free to send bug reports or patches on github.
The code is on github: http://github.com/nemesisdesign/django-tagging-autocomplete-tag-it
WARNING: The jQuery plugin used by this django app is a fork of the original
There are no demos or sample projects yet but you can see the jquery UI widget in action here: http://aehlke.github.com/tag-it/
Follows an explaination of the available settings that can be specified in your settings.py.
Minimum length of the words before starting to query the database, defaults to 1.
Highlight a tag before deleting it when pressing backspace, defaults to True.
Animated deletion of tags, defaults to True.
Maximum numbers of tags in a field. Let's say you want to limit the number of tags for each tagged item to 5 because you don't want spammers to fill your database with hundred of tags: this is for you. Defaults to 20.
This default behaviour affects all tag fields but can be overriden for specific fields by passing the max_tags argument to the field.
This is actually a setting of django-tagging. Limits the length of a single tag. Defaults to 50.
In case you want to load your own version of jQuery UI. Defaults to https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js.
A list of CSS files to style the look of the tag-field. Defaults to ['TAGGING_AUTOCOMPLETE_JS_BASE_URL/css/ui-autocomplete-tag-it.css'].
As inherited from django-autocomplete-tagging, there are two ways of using this field, a model-field and a form-widget.
Usage in models:
# models.py from django.db import models from tagging_autocomplete_tagit.models import TagAutocompleteTagItField class SomeModel(models.Model): # max_tags defaults to TAGGING_AUTOCOMPLETE_MAX_TAGS # If max_tags is specified it will override the value specified in TAGGING_AUTOCOMPLETE_MAX_TAGS tags = TagAutocompleteTagItField(max_tags=False)
Using the form widget:
# forms.py from django import forms from tagging.forms import TagField from tagging_autocomplete_tagit.widgets import TagAutocompleteTagIt class SomeForm(forms.Form): # max_tags defaults to TAGGING_AUTOCOMPLETE_MAX_TAGS # If max_tags is specified it will override the value specified in TAGGING_AUTOCOMPLETE_MAX_TAGS tags = TagField(widget=TagAutocompleteTagIt(max_tags=False))
Dependancies: you need to have django-tagging already installed.
Testing and better documentation.
“ brilliant thats good,keep on its really encouraging ”
By paulas in 10 Effective Business Card Design Tips
“ Thanks for this one, been going mad over it all day! Daft solution but very handy, thank you! Hate IE :-( ”
By Netmatter in IE8 doesn't like 1x1px semi-transparent backgrounds
“ Where is this 'verification_url' coming from? ”
“ It's ultra mega nice :) ”
“ It’s very useful! Thanks for sharing :) ”
By Abhijit in 10 Effective Business Card Design Tips