#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@…