`instance.save()` returns zero.
Apologies. My mistake.
Changing `AutoFloatField` to the following fixed it.

```Python
class AutoFloatField(AutoField):

    def python_value(self, value):
        return value/10
```
But with `PostgresqlExtDatabase` both `python_value` and `db_value` are required. :/
I am using `peewee` 3.0.8/3.0.13  and sqlite3 with [fabric](https://github.com/fabric/fabric/), to store build data.
My model is:
```Python
class AutoFloatField(AutoField):

    def db_value(self, value):
        return value * 10

    def python_value(self, value):
        return value/10

class Build(BaseModel):
    id = AutoFloatField()
    deployed_by = CharField(null=True)
    started_at = DateTimeField(default=datetime.utcnow)
    finished_at = DateTimeField(null=True)
    success = BooleanField(default=False)
```
First I create the instance with `deployed_by` and `started_at`, 
```Python
instance = Build.create(deployed_by='abc')
```
then I update it with `finished_at` and `success`:

```Python
    instance.success = True
    instance.finished_at = datetime.utcnow()
    instance.save()
```
`model_to_dict`  and `instance.dirty_fields` just before `.save()` returns:
```
{
	'deployed_by': 'abc',
	'finished_at': datetime.datetime(2018, 2, 6, 8, 47, 29, 313833),
	'id': 10,
	'started_at': datetime.datetime(2018, 2, 6, 8, 47, 11, 633645),
	'success': True
}

[<peewee.DateTimeField object at 0x7f2d2e7dee10>, <peewee.BooleanField object at 0x7f2d2e7dedd0>]
```

But ` instance.save()` returns zero and the instance is not updated but `instance.dirty_fields` returns empty list.

` instance.save()` works fine in console.