def get_storage_key(self, *args, **kwargs):
        """Return the redis key where to store the index for the given "value" (`args`)

        For this index, we store all PKs having the same value for a field in the same
        set. Key has this form:
        model-name:field-name:sub-field-name:normalized-value
        The ':sub-field-name part' is repeated for each entry in *args that is not the final value

        Parameters
        -----------
        kwargs: dict
            transform_value: bool
                Default to ``True``. Tell the call to ``normalize_value`` to transform
                the value or not
        args: tuple
            All the "values" to take into account to get the storage key.

        Returns
        -------
        str
            The redis key to use

        """

        args = list(args)
        value = args.pop()

        parts = [
            self.model._name,
            self.field.name,
        ] + args

        if self.prefix:
            parts.append(self.prefix)

        if self.key:
            parts.append(self.key)

        normalized_value = self.normalize_value(value, transform=kwargs.get('transform_value', True))

        parts.append(normalized_value)

        return self.field.make_key(*parts)