summaryrefslogtreecommitdiff
path: root/archivist/peewee_fixes.py
blob: ff914daf8ece9022ce1956c5b4b9996abdd228ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from peewee import QueryCompiler, strip_parens, ForeignKeyField

__all__ = []

def _parse_select_query(self, node, alias_map, conv):
    clone = node.clone()
    if not node._explicit_selection:
        if conv and isinstance(conv, ForeignKeyField):
            clone._select = (conv.to_field,)
        else:
            clone._select = clone.model_class._meta.get_primary_key_fields()
    sub, params = self.generate_select(clone, alias_map)
    return '(%s)' % strip_parens(sub), params

QueryCompiler._parse_select_query = _parse_select_query