code: def create_title(article, language, title, slug=None, description=None,
                   page_title=None, menu_title=None, meta_description=None,
                   creation_date=None, image=None):
      
      # validate article
      assert isinstance(article, Article)
  
      # validate language:
      assert language in get_language_list(article.tree.node.site_id)
  
      # validate creation date
      if creation_date:
          assert isinstance(creation_date, datetime.date)
  
      # set default slug:
      if not slug:
          slug = settings.CMS_ARTICLES_SLUG_FORMAT.format(
              now=creation_date or now(),
              slug=slugify(title),
          )
  
      # find unused slug:
      base_slug = slug
      qs = Title.objects.filter(language=language)
      used_slugs = list(s for s in qs.values_list('slug', flat=True) if s.startswith(base_slug))
      i = 1
      while slug in used_slugs:
          slug = '%s-%s' % (base_slug, i)
          i += 1
  
      # create title
      title = Title.objects.create(
          article=article,
          language=language,
          title=title,
          slug=slug,
          description=description,
          page_title=page_title,
          menu_title=menu_title,
          meta_description=meta_description,
          image=image,
      )
  
      return title
docs: Create an article title.