def get_many(self, keys, version=None): made_key_to_key = { self.make_key(key, version=version): key for key in keys } made_keys = list(made_key_to_key.keys()) for key in made_keys: self.validate_key(key) db = router.db_for_read(self.cache_model_class) table = connections[db].ops.quote_name(self._table) with connections[db].cursor() as cursor: cursor.execute( self._get_many_query.format(table=table, list_sql=get_list_sql(made_keys)), made_keys + [self._now()]) rows = cursor.fetchall() data = {} for made_key, value, value_type in rows: key = made_key_to_key[made_key] data[key] = self.decode(value, value_type) return data
def delete_many(self, keys, version=None): made_keys = [self.make_key(key, version=version) for key in keys] for key in made_keys: self.validate_key(key) db = router.db_for_write(self.cache_model_class) table = connections[db].ops.quote_name(self._table) with connections[db].cursor() as cursor: cursor.execute( self._delete_many_query.format( table=table, list_sql=get_list_sql(made_keys), ), made_keys)