title: Django Models: Common Ancestor Inheritance & Migration
body: <p>I thought I would <em>up my python game</em> with Django a bit by developing a large scale business app for fun. I seen the need for a <strong>common ancestor</strong> approach to model inheritence and tried to implement it based on the <a href="https://docs.djangoproject.com/en/1.7/topics/db/models/#multiple-inheritance" rel="nofollow">official documentation</a>. However, I keep getting this very annoying Message which I'm not sure what to do with. </p>
  
  <ul>
  <li><strong>Dj Version:</strong> Django 1.7</li>
  <li><strong>Py Version:</strong> Python 3.4.2</li>
  </ul>
  
  <p><strong>Message</strong></p>
  
  <pre><code>$ python manage.py makemigrations
  </code></pre>
  
  <blockquote>
  <pre><code>You are trying to add a non-nullable field 'businessentity_ptr' to business without a default; we can't do that (the database needs something to populate existing rows).
  
  Please select a fix:
   1) Provide a one-off default now (will be set on all existing rows)
   2) Quit, and let me add a default in models.py
  </code></pre>
  </blockquote>
  
  <p><strong>Models.py</strong></p>
  
  <pre><code>class BusinessEntity(models.Model):
      title = models.CharField(max_length=180)
  
      def __str__(self):
          return self.title
  
  
  class Business(BusinessEntity):
      description = models.TextField(max_length=600)
      claimed = models.BooleanField(default=False)
      slug = models.SlugField()
      timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
      updated = models.DateTimeField(auto_now_add=False, auto_now=True)
  
      def __str__(self):
          return self.description
  </code></pre>
  
  <p>What I've Tried, (which everyone will hate):</p>
  
  <ol>
  <li>Deleting the DB &amp; Re-migrating</li>
  <li>setting a default value for all fields</li>
  <li>Setting all fields to <code>null = True</code></li>
  </ol>
  
  <p>I have seen a hack around for this but I don't think it's a good approach. Maybe there is someone out there who understand Django Common Ancestors much better and point me in the right direction. </p>