Skip to main content
django-uuslug
================

A Django slugify application that guarantees uniqueness and handles unicode.
UUSlug = (``U``nique + ``U``code Slug)

Patches welcome: https://github.com/un33k/django-uuslug

Usage
=====

A. Install django-uuslug:
* _ Make sure you have python 2.6+ and can install from pypi
1. easy_install django-uuslug
2. pip install django-uuslug
3. git clone http://bitbucket.org/un33k/django-uuslug
a. cd django-uuslug
b. run python setup.py
4. wget https://github.com/un33k/django-uuslug/zipball/master
a. unzip the downloaded file
b. cd into django-uuslug-* directory
c. run python setup.py

B. Test & contribute to django-uuslug: (for developers)
* _ git clone http://bitbucket.org/un33k/django-uuslug
a. cd into django-uuslug
b. run python bootstrap.py
c. run bin/buildout -vvvvv
d. run bin/test


Unicode Test Example
=====================
from uuslug import uuslug as slugify

s = "This is a test ---"
r = slugify(s)
self.assertEquals(r, "this-is-a-test")

s = 'C\'est déjà l\'été.'
r = slugify(s)
self.assertEquals(r, "c-est-deja-l-ete")

s = 'Nín hǎo. Wǒ shì zhōng guó rén'
r = slugify(s)
self.assertEquals(r, "nin-hao-wo-shi-zhong-guo-ren")

s = '影師嗎'
r = slugify(s)
self.assertEquals(r, "ying-shi-ma")


Uniqueness Test Example
=======================
Override your object's save method with something like this (models.py)

from django.db import models
from uuslug import uuslug as slugify

class CoolSlug(models.Model):
name = models.CharField(max_length=100)
slug = models.CharField(max_length=200)

def __unicode__(self):
return self.name

def save(self, *args, **kwargs):
self.slug = slugify(self.name, instance=self)
super(CoolSlug, self).save(*args, **kwargs)

Test:
=====

name = "john"
c = CoolSlug.objects.create(name=name)
c.save()
self.assertEquals(c.slug, name) # slug = "john"

c1 = CoolSlug.objects.create(name=name)
c1.save()
self.assertEquals(c1.slug, name+"-1") # slug = "john-1"

ToDo:
=====
clean up README
add more test and examples

Credits:
=========
This is a cleaned and packaged up version of snippet (369) from http://www.djangosnippets.org/
Improved to handle unique slugs and unicode chars and packaged for easy install.

Metadata

Release files for django-uuslug 0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-uuslug 0.6
File Size Uploaded
django-uuslug-0.6.tar.gz 3.7 kB Details

Release files / django-uuslug-0.6.tar.gz

Download URL django-uuslug-0.6.tar.gz
Size 3.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3c78d76daef27043624c25f819541b97c329076afdec37d37c9a434f56575b35
BLAKE2b-256 checksum
How to use checksums
12864139a93535b3d8be8eb98daa0ce3a09adebc94930a8fd387202ee35cd2c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

2.0.0

2 release files

1.2.0

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.0

1 release file

0.9.0

1 release file

0.8

1 release file

0.7

1 release file

This release

0.6 This release

1 release file

0.5

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page