docs: def get_available_tokens(self, count=10, token_length=15, **kwargs):
          """Gets a list of available tokens.
  
          :param count: the number of tokens to return.
          :param token_length: the length of the tokens.  The higher the number
              the easier it will be to return a list.  If token_length == 1
              there's a strong probability that the enough tokens will exist in
              the db.
  
          """
          # This is the number of extra tokens to try and retrieve so calls to
          # the db can be limited
          token_buffer = int(math.ceil(count * .05))
  
          if token_buffer < 5:
              token_buffer = 5
  
          available = set([])
  
          while True:
              tokens = [random_alphanum(length=token_length)
                        for t in range(count + token_buffer)]
              db_tokens = self.filter(token__in=tokens).values_list('token',
                                                                    flat=True)
              available.update(set(tokens).difference(db_tokens))
  
              if len(available) >= count:
                  return list(available)[:count]