Using multi-table inheritance, I have two models:
class Bird(models.Model):
    color = models.CharField()
class Bluebird(Bird):
    ...
Using these models, I can do this:
birds = Bird.objects.all()
for bird in birds:
    print bird.color
This is super simple, but I don't like allowing people to define arbitrary color values in some cases. For example, I want to prevent users from creating Bluebird objects for which the color field is set to anything but "blue" or, in more rare cases, "grey" or "brown". In other words, I want to set the choices kwarg on the inherited color field from within the Bluebird model. From a cursory internet search, it seems that Django doesn't currently allow model subclasses to override the fields from a parent.
How does one retain access to the color field in the parent class while defining acceptable choices in the child?
EDIT: This question focuses on Django < 1.8. In 1.8, the ability to pass a callable for a field's choices kwarg was added, and while that would be nice, I'm dealing with a system that hasn't yet been upgraded and upgrading is not currently an option.
 
    