title: Django makemigrations makes new migration files for unchanged model fields
body: <p>What I'm using is as follows, I have defined a custom JSONField type and added a custom validator class to it.</p>
  
  <p><strong><em>models.py</em></strong></p>
  
  <pre><code>json_ctn = JsonField(verbose_name=_('Json'), null=True, blank=True)
  </code></pre>
  
  <p><strong><em>fields.py</em></strong></p>
  
  <pre><code>class JsonField(models.TextField):
  
      def __init__(self, *args, **kwargs):
  
          if kwargs.get('validators'):
              kwargs['validators'].append(JsonValidator())
          else:
              kwargs.update({'validators': [JsonValidator()]})
  
          super(JsonField, self).__init__(*args, **kwargs)
  
      def __eq__(self, other):
          return True
  </code></pre>
  
  <p><strong><em>validators.py</em></strong></p>
  
  <pre><code>@deconstructible
  class JsonValidator(object):
  
      error_messages = {
          'wrong_json_code': _('Provided custom value is not a valid JSON string.'),
      }
  
      def __call__(self, value):
          try:
              json.loads(value)
          except (ValueError, SyntaxError) as err:
              raise ValidationError(self.error_messages.get('wrong_json_code'))
          return value
  
      def __eq__(self, other):
          return True
  </code></pre>
  
  <p>The problem is with everytime I run makemigrations, <strong>even when there is no change in anything</strong>, a new migration is created with the following content : </p>
  
  <pre><code>migrations.AlterField(
      model_name='whatever',
      name='json_ctn',
      field=PATH.fields.JsonField(blank=True, null=True, verbose_name='Json', validators=[PATH.validators.JsonValidator(), PATH.validators.JsonValidator(), PATH.validators.JsonValidator()]),
  ),
  </code></pre>
  
  <ol>
  <li>Any idea why is this the behavior ? I've even altered the _ <em>eq</em> _ to
  always return True, as mentioned <a href="https://docs.djangoproject.com/en/1.8/topics/migrations/#custom-deconstruct-method" rel="nofollow">here</a>.</li>
  <li>Also why JsonValidator() is added 3 times to the
  validators in the migration file ? </li>
  </ol>
  
  <p>Thanks !</p>