Django model forms - disabled fields in changed_data
<p>I have a form base class which checks if the instance the form is updating has changed, and does not save if it has not changed.</p>

<p>this is in my custom model form, I override save:</p>

<pre><code>class MyModelForm(models.ModelForm):
    # .. more code here..
        def save(self, commit=True):
            if self.has_changed():
               # Won't do anything if the instance did not changed
               return self.instance
            return super(MyModelForm, self).save(commit)
</code></pre>

<p>A LOT of my forms use this base class. 
Now, one of my forms have a few fields which I set to <code>disabled=True</code> (django 1.9 +). So in one of my forms:</p>

<pre><code>def __init__(self, *args, **kwargs):
      ## ..code
      self.fields['address'].disabled = True
</code></pre>

<p>After a lot of debugging why the <code>form.has_changed()</code> is True (hence the instance is saved for no reason), even when I save the form without changing the instance. I've found out that django includes disabled fields in <code>changed_data</code> - which makes no sense, as disabled fields should not be altered by the user anyway.</p>

<p>Am I missing something or it is a bug, or maybe that how it should work? 
How can I resolve this without too much changes, as the form base class is used a lot in my code.</p>