Do we also need a unit test to make sure we are using the cache correctly? The main thing that can go wrong are using a different cache key to set and get the values. In fact, that code is duplicated here, maybe it's better to have a `_cache_key(self, field, value, field_lookup)` method. Then `_fetch_from_cache` and _put_in_cache` are probably superfluous.