Description

it calls construct_instance and at this point assigns all values to the instance

BaseForm's _clean_form() is called

it calls clean()

At this point clean() can update self.cleaned_data but the value is never used for anything. This breaks forms that rely on clean() being able to alter the data (useful for example when a field's value depends on other fields). The instance should at least be updated when calling save().