aboutsummaryrefslogtreecommitdiff
path: root/tagging/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'tagging/forms.py')
-rw-r--r--tagging/forms.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/tagging/forms.py b/tagging/forms.py
index e65aec4..a70ac6b 100644
--- a/tagging/forms.py
+++ b/tagging/forms.py
@@ -1,12 +1,28 @@
"""
-Tagging components for Django's ``newforms`` form library.
+Tagging components for Django's form library.
"""
from django import forms
from django.utils.translation import ugettext as _
from tagging import settings
+from tagging.models import Tag
from tagging.utils import parse_tag_input
+class AdminTagForm(forms.ModelForm):
+ class Meta:
+ model = Tag
+
+ def clean_name(self):
+ value = self.cleaned_data['name']
+ tag_names = parse_tag_input(value)
+ if len(tag_names) > 1:
+ raise ValidationError(_('Multiple tags were given.'))
+ elif len(tag_names[0]) > settings.MAX_TAG_LENGTH:
+ raise forms.ValidationError(
+ _('A tag may be no more than %s characters long.') %
+ settings.MAX_TAG_LENGTH)
+ return value
+
class TagField(forms.CharField):
"""
A ``CharField`` which validates that its input is a valid list of
@@ -19,5 +35,6 @@ class TagField(forms.CharField):
for tag_name in parse_tag_input(value):
if len(tag_name) > settings.MAX_TAG_LENGTH:
raise forms.ValidationError(
- _('Each tag may be no more than %s characters long.') % settings.MAX_TAG_LENGTH)
+ _('Each tag may be no more than %s characters long.') %
+ settings.MAX_TAG_LENGTH)
return value