Browse Source

Make sure the slug field is never empty.

master
Erik Stein 7 years ago
parent
commit
a7896a9490
  1. 5
      CHANGES
  2. 6
      shared/utils/models/slugs.py
  3. 1
      shared/utils/text.py

5
CHANGES

@ -1,3 +1,8 @@
0.2.7 2018-09-04
- Make sure the slug field is never empty.
- Enforce unique=True if unique_slug=True.
- Allow function in AutoSlugfield populate_from.
0.2.6
- Added missing requirement for django-dirtyfields

6
shared/utils/models/slugs.py

@ -15,8 +15,6 @@ if six.PY3:
from functools import reduce
DEFAULT_SLUG = getattr(settings, 'DEFAULT_SLUG', "item")
SLUG_HELP = _("Kurzfassung des Namens für die Adresszeile im Browser. Vorzugsweise englisch, keine Umlaute, nur Bindestrich als Sonderzeichen.")
@ -62,9 +60,9 @@ class AutoSlugField(django_fields.SlugField):
self.populate_from.split("."), model_instance)
if callable(value):
value = value()
if not value:
value = DEFAULT_SLUG
value = self.slugify(value)
if not value:
value = model_instance._meta.model_name
if self.unique_slug:
# TODO Move import to top of file once AutoSlugField is removed from shared.utils.fields and we no longer have a circular import
from ..fields import uniquify_field_value

1
shared/utils/text.py

@ -35,6 +35,7 @@ slugify_german = slugify_long
@keep_lazy_text
def downgrading_slugify(value):
# Slugfiy only allowing hyphens, numbers and ASCII characters
# FIXME django_slugify might return an empty string; take care that we always return something
return re.sub("[ _]+", "-", django_slugify(downgrade(value)))

Loading…
Cancel
Save