title: Django 1.7 migrations with abstract base classes
body: <p>I am trying to upgrade to Django 1.7 and switch from South to Django's integrated migration. I ran into a problem with my models. I have a base class:</p>
  
  <pre><code>class CalendarDisplay():
      """
      Inherit from this class to express that a class type is able to be displayed in the calendar.
      Calling get_visual_end() will artificially lengthen the end time so the event is large enough to
      be visible and clickable.
      """
  
      start = None
      end = None
  
      def __init__(self):
          pass
  
      def get_visual_end(self):
          if self.end is None:
              return max(self.start + timedelta(minutes=15), timezone.now())
          else:
              return max(self.start + timedelta(minutes=15), self.end)
  
      class Meta:
          abstract = True
  </code></pre>
  
  <p>And here is an example of a class that inherits it:</p>
  
  <pre><code>class Reservation(models.Model, CalendarDisplay):
      user = models.ForeignKey(User)
      start = models.DateTimeField('start')
      end = models.DateTimeField('end')
      ...
  </code></pre>
  
  <p>Now I try to migrate my app, but get the error below: <code>python manage.py makemigrations</code></p>
  
  <pre><code>Migrations for 'Example':
    0001_initial.py:
      - Create model Account
      ...
      ValueError: Cannot serialize: &lt;class Example.models.CalendarDisplay at 0x2f01ce8&gt;
      There are some values Django cannot serialize into migration files.
  </code></pre>
  
  <p>What are my options for resolving this? Can Django 1.7 migrations handle abstract base classes? I would prefer to keep my abstract base class and inherit it, however, copying and pasting the necessary functions into the appropriate classes is a last resort.</p>