the mod op has problem in string formatting
Final I get the code passed, but I need to change something.

```
--- a/test/package/peewee.py
+++ b/test/package/peewee.py
@@ -315,7 +315,7 @@ OP = attrdict(
     BIN_AND='&',
     BIN_OR='|',
     XOR='^',
-    MOD='%',
+    MOD='%%',
     EQ='=',
     LT='<',
     LTE='<=',
@@ -1557,7 +1557,7 @@ class QueryCompiler(object):
         OP.XOR: '#',
         OP.AND: 'AND',
         OP.OR: 'OR',
-        OP.MOD: '%',
+        OP.MOD: '%%',
         OP.REGEXP: 'REGEXP',
         OP.CONCAT: '||',
     }

--- a/test/library/peewee_ext.py
+++ b/test/library/peewee_ext.py
@@ -48,3 +48,6 @@ def result_to_dict(obj):
         ele[key] = value
     return ele

+def mod(lhs, rhs):
+    return peewee.Expression(lhs, '%%', rhs)
``` It appears that you're using Peewee 2.x? I've added a test-case in ba8b72a which seems to me to indicate that the code is correct on 3.x
I use the mod like docs.
```
from peewee import *
from peewee import Expression # the building block for expressions

def mod(lhs, rhs):
    return Expression(lhs, '%', rhs)
```
but this code has error
```
TypeError: not all arguments converted during string formatting
```
when I use ```%% ``` replace the  ```%```, also get error
```
  File "/home/test/..//package/peewee.py", line 1748, in parse_node
    sql, params, unknown = self._parse(node, alias_map, conv)
  File "/home/test/..//package/peewee.py", line 1717, in _parse
    sql, params = self._parse_map[node_type](node, alias_map, conv)
  File "/home/test/..//package/peewee.py", line 1620, in _parse_expression
    sql = template % (lhs, self.get_op(node.op), rhs)
  File "/home/test/..//package/peewee.py", line 1606, in get_op
    return self._op_map[q]
KeyError: '%%
```