docs: def derive_and_set_name_fields_and_slug(
              self, set_name_sort=True, set_slug=True
      ):
          """
          Derive subordinate name_* field values from the `name_full` field
          unless these fields are set in their own right.
  
          This method is called during `save()`
          """
          # name_full is the primary required name field. It must be set.
          if is_empty(self.name_full):
              if not is_empty(self.name_display):
                  self.name_full = self.name_display
              else:
                  raise ValueError(
                      u"%s.name_full cannot be empty at save" % type(self).__name__)
          # if empty, `name_sort` == `name_full`
          if set_name_sort and is_empty(self.name_sort):
              self.name_sort = self.derive_sort_name()
          # if empty, `slug` is set to slugified `name_full`
          if set_slug and is_empty(self.slug):
              self.slug = slugify(self.name_display or self.name_full)