db_value() doesn't work fine as expected
I have no idea what "refresh the page" implies. If you can produce a test-case that replicates this I will re-open. At the moment my sense is that the problem is in your code somewhere.
This is my DB configuration:

```
database = MySQLDatabase('creditCardManager',
    **{
        'host': 'localhost',
        'password': 'xxx',
        'user': 'yyy',
        'use_unicode': True,
        'charset': 'utf8',
        'autorollback': True,
    })
```

and I define an custom field:

```
class EnumField(SmallIntegerField):
    def __init__(self, choices, default, *args, **kwargs):
        self.default_db_value = default[0]
        self.default_python_value = default[1]
        self.int_from_str = {v:k for k, v in choices}
        self.str_from_int = {k:v for k, v in choices}
        return super(SmallIntegerField, self).__init__(*args, **kwargs)

    def db_value(self, value):
        if isinstance(value, str):
            value = value.decode('utf8')
        return self.int_from_str.get(value, self.default_db_value)

    def python_value(self, value):
        return self.str_from_int.get(value, self.default_python_value)
```

I define a model:

```
MY_CHOICES = [
    (1, u'ON'),
    (2, u'OFF'),
]
class Card(BaseModel):
    cid = PrimaryKeyField()
    my_field = EnumField(choices=MY_CHOICES, default=(0, u'unknown'))
```

And I have an updating API, which do:

```
card = Card.get(cid = cid)
card.my_field = u'ON'
card.save()
```

The problem is:
if I follow the operations below, everything works fine:
[Op-A]
1. restart my server
2. send request to update this field

but when I follow the operations below, 
[Op-B]
1. refresh the page
2. send request ( by clicking some button on my page) again to update this field

this time, db_value() doesn't works as expected.

```
OperationalError: (1366, "Incorrect integer value: 'ON' for column 'bank' at row 1")
```

what's the differences between [Op-A] and [Op-B] ?
Thanks a lot.