Andy Mikhailenko committed f04cabc

If custom slugify function is not defined, try to import one from pytils and only then fall back to Django's default.

Comments (0)

Files changed (1)


 from django.conf import settings
-""" the AUTOSLUGFIELD_SLUGIFY_FUNCTION setting allows to define
+""" the AUTOSLUG_SLUGIFY_FUNCTION setting allows to define
 a custom slugifying function. Value can be a string or a callable.
 Default value is 'django.template.defaultfilters.slugify'.
-slugify = getattr(settings, 'AUTOSLUGFIELD_SLUGIFY_FUNCTION', # use custom slugifying function...
-    'django.template.defaultfilters.slugify' # ...or fall back to Django's default one
+# use custom slugifying function if any 
+slugify = getattr(settings, 'AUTOSLUG_SLUGIFY_FUNCTION', None)
+if not slugify:
+    try:
+        # more i18n-friendly slugify function (supports Russian transliteration)
+        from pytils.translit import slugify
+    except ImportError:
+        # fall back to Django's default one
+        slugify = 'django.template.defaultfilters.slugify'
+# find callable by string
 if isinstance(slugify, str):
     from django.core.urlresolvers import get_callable
     slugify = get_callable(slugify)