def generate(self):
        """
        Generates a new token for this column based on its bit length.  This method
        will not ensure uniqueness in the model itself, that should be checked against
        the model records in the database first.

        :return:    <str>
        """
        try:
            model = self.schema().model()
        except AttributeError:
            return os.urandom(self.__bits).encode('hex')
        else:
            while True:
                token = os.urandom(self.__bits).encode('hex')
                if model.select(where=orb.Query(self) == token).count() == 0:
                    return token
Generates a new token for this column based on its bit length.  This method
        will not ensure uniqueness in the model itself, that should be checked against
        the model records in the database first.

        :return:    <str>