Support Request: Nested dicts (1 -> n) select query
Unfortunately this is not currently supported using `.dicts()`. Searching 1 -> N can be accomplished using the special `prefetch` API. Behind-the-scenes, `prefetch` will construct the appropriate subqueries to ensure you don't have O(n) queries when fetching "keywords" in your example.

Your best bet is to write something like the following:

``` python
filters = Filter.select().order_by(Filter.name.desc())
keywords = Keyword.select().order_by(Keyword.keyword.desc())
filter_keyword = prefetch(filters, keywords)

def filter_to_dict(f):
    data = f._data.copy()
    data['keywords'] = [k.keyword for k in f.keywords_prefetch]
    return data

print map(filter_to_dict, filter_keyword)
```

Would print:

```
[{'keywords': [u'k3-3', u'k3-2', u'k3-1'], 'id': 3, 'name': u'filter3'},
 {'keywords': [u'k2-3', u'k2-2', u'k2-1'], 'id': 2, 'name': u'filter2'},
 {'keywords': [u'k1-3', u'k1-2', u'k1-1'], 'id': 1, 'name': u'filter1'}]
```
 Awesome, cheers :)

Hi Charles,

I'm looking to produce a list of dictionaries from a query so it's easy to serialise to json for API output.. The twist over the conventional usage of `dicts()` is that I'd like to perform a join and have that aggregate into a sub-list..

Puesdo-code example:

``` python
class Filter(Model):
    uuid = UUIDField(primary_key=True)
    name = CharField()

class Keyword(Model):
    name = CharField()
    filter = ForeignKeyField(Filter)

# Create and populate tables..

json = Filter.select(Filter.uuid, Filter.name, Keyword.name).join(Keyword, JOIN_LEFT_OUTER).dicts()
```

I'd like the API to output something like this..

``` json
[
    {
         "uuid": "...",
         "name": "My filter 1",
         "keywords": ["a", "b", "c"]
    },
    {
         "uuid": "...",
         "name": "My filter 2",
         "keywords": ["d", "e", "f"]
    },
    {
         "uuid": "...",
         "name": "My filter 3",
         "keywords": []
    },
    ...
]
```

Sorry for the puesdo-code, is there a helper that could perform something like this or should I just roll my own? It'll be a reasonably common operation for this API unfortunately thus I'm asking to see if I've missed anything in the manual :)

Thanks,
Alex
