title: Django - How to allow inheritance of swappable model?
body: <p>I am using <a href="https://github.com/wq/django-swappable-models" rel="nofollow noreferrer">swappable</a> to make a reusable app (named <code>Meat</code>) that provides models that Developers can swap for their own.  That model is a super class of other models.</p>
  
  <pre class="lang-py prettyprint-override"><code>from django.db.models import Model, CharField
  from swapper import swappable_setting
  
  class AbstractMeat(Model):
      class Meta:
          abstract = True
      name = CharField(max_length=16)
  
  class Meat(AbstractMeat):
      class Meta:
          swappable = swappable_setting("cyber", "Meat")
  
  class Pork(Meat):
      pass
  
  class Fish(Meat):
      pass
  </code></pre>
  
  <p>To test this, i created the <code>real</code> app and set <code>MEAT_MEAT_MODEL</code>.</p>
  
  <pre class="lang-py prettyprint-override"><code># settings.py
  MEAT_MEAT_MODEL = "real.RealMeat"
  
  # real/models.py
  from django.forms import IntegerField
  from cyber.models import AbstractMeat
  
  class RealMeat(AbstractMeat):
      price = IntegerField()
  </code></pre>
  
  <p>Running <code>runserver</code> i get this error:</p>
  
  <pre><code>meat.Fish.meat_ptr: (fields.E301) Field defines a relation with the model 'meat.Meat', which has been swapped out.
      HINT: Update the relation to point at 'settings.MEAT_MEAT_MODEL'.
  meat.Pork.meat_ptr: (fields.E301) Field defines a relation with the model 'meat.Meat', which has been swapped out.
      HINT: Update the relation to point at 'settings.MEAT_MEAT_MODEL'.
  </code></pre>
  
  <p>This error arises on Django 1.9 to 1.11, but for my purpose only 1.11 is critical.</p>
  
  <p>I tried overriding the <code>meat_ptr</code> as instructed in <a href="https://docs.djangoproject.com/en/1.11/topics/db/models/#multi-table-inheritance" rel="nofollow noreferrer">Multi-table inheritance</a> like so:</p>
  
  <pre class="lang-py prettyprint-override"><code>from swapper import get_model_name
  from django.db.models import OneToOneField, CASCADE
  
  class Pork(Meat):
      meat_ptr = OneToOneField(
          get_model_name("meat", "Meat"), CASCADE,
          parent_link=True)
  </code></pre>
  
  <p>But it gives me this error on 1.11 and 1.10 (but not 1.9):</p>
  
  <pre><code>django.core.exceptions.FieldError: Auto-generated field 'meat_ptr' in class 'Pork' for parent_link to base class 'Meat' clashes with declared field of the same name.
  </code></pre>
  
  <p>In conclusion, how do i make this happen?</p>