@_lambda_eval
def on(self, *on_expressions, **on_expression_dict):
    if (self._join_chain is None):
        raise ORMError('this query does not have a join chain!')
    self._model_class._check_attrs(on_expression_dict)
    on_expression_dict = self._model_class._wash_attrs(on_expression_dict)
    on_expressions = (list(on_expressions) + list(_dict_to_expressions(self._model_class, on_expression_dict)))
    on_expression = reduce(operator.and_, on_expressions)
    join_chain = self._join_chain.clone()
    join_chain.on(on_expression)
    return self._update(_join_chain=join_chain)
@_lambda_eval
def on(self, *on_expressions, **on_expression_dict):
    if (self._join_chain is None):
        raise ORMError('this query does not have a join chain!')
    self._model_class._check_attrs(on_expression_dict)
    on_expression_dict = self._model_class._wash_attrs(on_expression_dict)
    on_expressions = (list(on_expressions) + list(_dict_to_expressions(self._model_class, on_expression_dict)))
    on_expression = reduce(operator.and_, on_expressions)
    join_chain = self._join_chain.clone()
    join_chain.on(on_expression)
    return self._update(_join_chain=join_chain)