title: Django AbstractModel Inheritance and migrations
body: <p>Want to clarify my understanding of Django abstract model inheritance and migrations since I've had difficulty finding clear documentation on this.</p>
  <p>Say I've got a package <code>pckg.app.models</code> defining an AbstractModel:</p>
  <pre><code>class AbstractObj(models.Model):
      name = CharField(max_length=100)
  
      class Meta:
          verbose_name = _(&quot;Obj&quot;)
          abstract = True
  
      def __str__(self):
          return str(self.label)
  </code></pre>
  <p>It is possible to change the <code>name</code> field via inheritance? Or could that package be imported so the 'name' field can be migrated and changed?</p>
  <p>In my app's models.py, if I import and subclass it:</p>
  <pre><code>from pckg.app.models import Obj
  
  Class NewObj(Obj):
      name = CharField(max_length=200)
  
      def __str__(self):
          return self.label
  </code></pre>
  <p>this would create a migration such as:</p>
  <pre><code>from __future__ import unicode_literals
  
  from django.db import migrations, models
  from forms_builder.forms import fields
  import django.db.models.deletion
  
  
  class Migration(migrations.Migration):
  
      dependencies = [
          ('foo', 'bar'),
      ]
  
      operations = [
          migrations.CreateModel(
              name='NewObj',
              fields=[
                  ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                  ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')),
                  ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')),
                  ('name', models.CharField(max_length=200)),
              ],
          ),
      ]
  </code></pre>
  <p>but this won't work because NewObj is an instance of Obj, not Obj:</p>
  <pre><code>django.core.exceptions.FieldError: Local field 'name' in class 'NewObj' clashes with field of the same name from base class 'Obj'
  </code></pre>
  <p>is there a way to migrate or change <code>AbstractObj</code> without defining it within my Django app and creating the dedicated migration file(s) for it?</p>