Control result iterator in prefetch
Prefetch is not designed as a replacement for serialization - it is to help reduce queries in certain cases. The complexity of mapping relations back to instances precludes providing different result-types (like dicts or tuples) -- so models are always returned. Any additional processing can then work on the model instances which have efficiently been loaded into memory.

>But I'm afraid that this means 2 iterations over the desired set and want to know if I can supply this serializing logic via a hook or something.

I doubt very much this is as much of a problem as you imagine. I'd suggest profiling if you're in doubt.
Hi, I would like to know if there is a way to specify the iterator per row in a prefetch query.

Ideally,  I would like to add a `.dicts()` to the end of my prefetch query along with specifying which fields to add to the dict that may not be in the base queries select.

*Current Model and Query Setup*

The scenario I have is as follows:

```
class User(BaseModel):
     .... //some user fields
     
class Tool(BaseModel):
    .... //other fields
    location = peewee.ForeignKeyField(Location, backref='tools')

class Location(BaseModel)
    users = peewee.ManyToManyField(User, backref='locations')
    ... // other fields

LocationUser = Location.users.get_through_model()

locations = Location.select(Location.field1, Location.field2, fn.COUNT(Tool.id).alias('tools_count')).join(Tool, JOIN.LEFT_OUTER).group_by(Location)
res = prefetch(locations, LocationUser, User)
```

* Current Result*: List of Location Objects

*Desired Result*
```[{'id': 'idval', 'field1': 'val1, 'tools_count': 0, 'users': [{user dict fields}, ...]} ,...]```

For now, I'm taking the returned list from prefetch and serializing it by running over this list. But I'm afraid that this means 2 iterations over the desired set and want to know if I can supply this serializing logic via a hook or something.

Please let me know if my provided context is insufficient 