Parses Q tree and returns linguist lookups or model lookups
        if reverse is True.

def _get_linguist_condition(self, condition, reverse=False, transform=False):
        """
        Parses Q tree and returns linguist lookups or model lookups
        if reverse is True.
        """
        # We deal with a node
        if isinstance(condition, Q):
            children = []
            for child in condition.children:
                parsed = self._get_linguist_condition(
                    condition=child, reverse=reverse, transform=transform
                )
                if parsed is not None:
                    if (isinstance(parsed, Q) and parsed.children) or isinstance(
                        parsed, tuple
                    ):
                        children.append(parsed)

            new_condition = copy.deepcopy(condition)
            new_condition.children = children

            return new_condition

        # We are dealing with a lookup ('field', 'value').
        lookup, value = condition
        is_linguist = self.is_linguist_lookup(lookup)

        if transform and is_linguist:
            return Q(
                **utils.get_translation_lookup(
                    self.model._linguist.identifier, lookup, value
                )
            )

        if (reverse and not is_linguist) or (not reverse and is_linguist):
            return condition