From 58a2280c2b6cbe533be420f69257fe7cfab716a8 Mon Sep 17 00:00:00 2001 From: Corey Oordt Date: Thu, 22 Oct 2009 12:32:28 -0400 Subject: [PATCH] Added an optional setting to allow the slug to be changed --- categories/admin.py | 4 +++- categories/settings.py | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 categories/settings.py diff --git a/categories/admin.py b/categories/admin.py index 8310df3..5296de9 100644 --- a/categories/admin.py +++ b/categories/admin.py @@ -4,6 +4,7 @@ from django import forms from django.template.defaultfilters import slugify from mptt.forms import TreeNodeChoiceField from editor.tree_editor import TreeEditor +from settings import ALLOW_SLUG_CHANGE class NullTreeNodeChoiceField(forms.ModelChoiceField): """A ModelChoiceField for tree nodes.""" @@ -30,7 +31,8 @@ class CategoryAdminForm(forms.ModelForm): model = Category def clean_slug(self): - self.cleaned_data['slug'] = slugify(self.cleaned_data['name']) + if self.instance is None or ALLOW_SLUG_CHANGE: + self.cleaned_data['slug'] = slugify(self.cleaned_data['name']) return self.cleaned_data['slug'] def clean(self): diff --git a/categories/settings.py b/categories/settings.py new file mode 100644 index 0000000..9888bb9 --- /dev/null +++ b/categories/settings.py @@ -0,0 +1,3 @@ +from django.conf import settings + +ALLOW_SLUG_CHANGE = getattr(settings, 'CATEGORIES_ALLOW_SLUG_CHANGE', False) \ No newline at end of file