Opened 19 years ago

Closed 19 years ago

Last modified 17 years ago

#299 closed defect (fixed)

Slugify shouldn't remove hyphens

Reported by: gch@… Owned by: Adrian Holovaty
Component: contrib.admin Version:
Severity: normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Example python session:

>>> from django.core.defaultfilters import slugify
>>> slugify('Django Rocks!', None) 
'django-rocks'
>>> slugify('django-rocks', None)
'djangorocks'

Personally, I think it makes much more sense to not have it remove the hyphens. Basically, you want slugify(slugify(slugify(X))) to equal slugify(X).

The simple fix here is the following diff

Index: defaultfilters.py
===================================================================
--- defaultfilters.py   (revision 463)
+++ defaultfilters.py   (working copy)
@@ -54,7 +54,7 @@
  
 def slugify(value, _):
     "Converts to lowercase, removes non-alpha chars and converts spaces to hyphens"
-    value = re.sub('[^\w\s]', '', value).strip().lower()
+    value = re.sub('[^\w\s-]', '', value).strip().lower()
     return re.sub('\s+', '-', value)
      
 def stringformat(value, arg):

Change History (1)

comment:1 by Adrian Holovaty, 19 years ago

Resolution: fixed
Status: newclosed

(In [464]) Fixed #299 -- Slugify no longer removes hyphens. Thanks, gch@…

Note: See TracTickets for help on using tickets.
Back to Top