It is supposed the aggregation on integer is fast than numeric type in database duo to how they are stored as numeric is represented as string. As money only have 2 decimal place, it can be converted to an Integer despite of its decimal point.
The python class decimal.Decimal also has a shortcoming that it is not json serializable(neither cjson nor simplejson). This money field appears as a float number to the front end, so it does not meet the headache as DecimalField.
The usage is very simple.
In Model:
class SomeModel(models.Model):
...
income = MoneyField('income')
...
Then treat the attribute of the model instance as a normal float type.
**Notes**
If you try to use aggregation on this field, you have to convert it to float by yourself. Currently I could not find any method to fix this.