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.
“ Hi Ronak, for any question regarding OpenWISP, use one of the support channels: http://openwisp.org/support.html ”
By Federico Capoano in netjsonconfig: convert NetJSON to OpenWRT UCI
“ Hi, I have installed openwisp controller using ansible playbook. Now, i am adding the configurations automatically using OPENWRT devices in openwisp file by specifying shared_key so can you suggest me if I want to set limit to add configuration how can i do it? ”
By Ronak in netjsonconfig: convert NetJSON to OpenWRT UCI
“ Hi Julio! I missed your comment a few years ago but I'm glad you are working with OpenWISP, I'll try to reach you in private :-) ”
By Federico Capoano in A Turning Point in my Life, Community Networks and OpenWISP
“ Great news Aymará! Very happy to know this post has inspired you to experiment :-) ”
By Federico Capoano in First DjangoGirls Rome wrap-up & afterthoughts
“ Hi!! I'm a Django Girls coach too. Here, in Argentina, made just what you suggested, splited the workshop in two days. The experiment went just great! Most of the girls achieved to publish the blog from ground 0. It feels great to be helpfull ... ”
By Aymará in First DjangoGirls Rome wrap-up & afterthoughts