code: def make_name(self, reserved=[]):
          
          if self.title:
              if inspect(self).has_identity:
                  def checkused(c):
                      return bool(c in reserved or c in self.reserved_names
                          or self.__class__.query.filter(self.__class__.id != self.id).filter_by(name=c).notempty())
              else:
                  def checkused(c):
                      return bool(c in reserved or c in self.reserved_names
                          or self.__class__.query.filter_by(name=c).notempty())
              with self.__class__.query.session.no_autoflush:
                  self.name = six.text_type(make_name(self.title_for_name, maxlength=self.__name_length__, checkused=checkused))
docs: Autogenerates a :attr:`name` from the :attr:`title`. If the auto-generated name is already
          in use in this model, :meth:`make_name` tries again by suffixing numbers starting with 2
          until an available name is found.
  
          :param reserved: List or set of reserved names unavailable for use