• 
      

    Allow a DecimalField's max_digits and decimal_places to be changed.

    Review Request #11309 — Created Nov. 29, 2020 and submitted — Latest diff uploaded

    Information

    Django Evolution
    release-2.x

    Reviewers

    We didn't have any support for actually changing a DecimalField's
    max_digits and decimal_places attributes, which meant that once such
    a field was added to a model, it could never be changed.

    This change implements the ability to change these attributes. It
    requires a bit of a change to the column attribute mutation logic, since
    unlike most attributes, max_digits and decimal_places really need to
    be considered together when updating the column. That's because in most
    databases, they're defined as part of the column type
    (numeric(max_digits, decimal_places)). The approach implemented is a
    bit specialized for DecimalField, but if we encounter more situations
    like this in the future, we'll be able to build upon it.

    Unit tests pass for all databases and all versions of Django.

    Commits

    Files