form.has_changed() is undocumented on forms and only works with 'initial' data.