Default   value weird behavior
update:
setting 

```
  class Meta:
        only_save_dirty = False
```

Fixed the  issue ,   however   i  do  not  believe this is a good solution.
One more thing  i  noticed ,  default values functions calculated every  time  an  object  gets populated from database regardless of if it  was set  already  to  default value or otherwise.

This may  get  expensive  quickly
 Can you tell me what version you were using previously?
 I think I know -- in `Model._prepare_instance` it's clearing the dirty fields a bit too aggressively.
 It was 2.6.4.
 That's quite a big jump... I was wondering if e28b6e4529176a1dff6b2b6e247658ccab5bcbb4 was the issue but I'm guessing the fact that defaults are excluded from dirty fields on population is the real issue.
 I believe I have a fix pushed, just going to let the tests run.
 Fixed in c17d3db
 Please note  ,  that with  IntegerField(default=incrementer()) default only  executes once ,   but if IntegerField(default=incrementer)  it will be callable  and treated differently .  Not  sure if it   matters .
 It's still considered a callable because the return value is a function.

After  last  upgrade  something  went  very  wrong .

```


class SomeModel(BaseModel):
    value=IntegerField()
    hash= FixedCharFiled(default=utils.some_hash_func)

object= SomeModel(value=3)
object.save()
object2= SomeModel.get(SomeModel.id==object.id)
```

**object1.hash ==object2.hash**  returns **False** 

it looks like  field populated with one default value ,  but  insert statement  is prepared with  another call to  default  function,  even though the value was already  generated.
 this ruined my  application completely. 
