def getMultipleOnlyFields(self, pks, fields, cascadeFetch=False):
if type(pks) == set:<EOL><INDENT>pks = list(pks)<EOL><DEDENT>if len(pks) == <NUM_LIT:1>:<EOL><INDENT>return IRQueryableList([self.getOnlyFields(pks[<NUM_LIT:0>], fields, cascadeFetch=cascadeFetch)], mdl=self.mdl)<EOL><DEDENT>conn = self._get_connection()<EOL>pipeline = conn.pipeline()<EOL>for pk in pks:<EOL><INDENT>key = self._get_key_for_id(pk)<EOL>pipeline.hmget(key, fields)<EOL><DEDENT>res = pipeline.execute()<EOL>ret = IRQueryableList(mdl=self.mdl)<EOL>pksLen = len(pks)<EOL>i = <NUM_LIT:0><EOL>numFields = len(fields)<EOL>while i < pksLen:<EOL><INDENT>objDict = {}<EOL>anyNotNone = False<EOL>thisRes = res[i]<EOL>if thisRes is None or type(thisRes) != list:<EOL><INDENT>ret.append(None)<EOL>i += <NUM_LIT:1><EOL>continue<EOL><DEDENT>j = <NUM_LIT:0><EOL>while j < numFields:<EOL><INDENT>objDict[fields[j]] = thisRes[j]<EOL>if thisRes[j] != None:<EOL><INDENT>anyNotNone = True<EOL><DEDENT>j += <NUM_LIT:1><EOL><DEDENT>if anyNotNone is False:<EOL><INDENT>ret.append(None)<EOL>i += <NUM_LIT:1><EOL>continue<EOL><DEDENT>objDict['<STR_LIT>'] = pks[i]<EOL>obj = self._redisResultToObj(objDict)<EOL>ret.append(obj)<EOL>i += <NUM_LIT:1><EOL><DEDENT>if cascadeFetch is True:<EOL><INDENT>for obj in ret:<EOL><INDENT>self._doCascadeFetch(obj)<EOL><DEDENT><DEDENT>return ret<EOL>
getMultipleOnlyFields - Gets only certain fields from a list of  primary keys. For working on entire filter set, see allOnlyFields

@param pks list<str> - Primary Keys

@param fields list<str> - List of fields


@param cascadeFetch <bool> Default False, If True, all Foreign objects associated with this model
   will be fetched immediately. If False, foreign objects will be fetched on-access.

return - List of partial objects with only fields applied