#299 closed defect (fixed)
Slugify shouldn't remove hyphens
| Reported by: | 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):
Note:
See TracTickets
for help on using tickets.
(In [464]) Fixed #299 -- Slugify no longer removes hyphens. Thanks, gch@…