docs: def generate_slug(obj, text, tail_number=0):
      from panya.models import ModelBase
      """
      Returns a new unique slug. Object must provide a SlugField called slug.
      URL friendly slugs are generated using django.template.defaultfilters' slugify.
      Numbers are added to the end of slugs for uniqueness.
      """
      # use django slugify filter to slugify
      slug = slugify(text)
      
      existing_slugs = [item.slug for item in ModelBase.objects.filter(slug__regex=r'^%s(-\d+)?' % slug).exclude(id=obj.id)]
      
      tail_number = 0
      new_slug = slug
      while new_slug in existing_slugs:
          new_slug = slugify("%s-%s" % (slug, tail_number))
          tail_number += 1
      
      return new_slug