Configurar una clave foránea para una clase base abstracta con Django

He factorizado los atributos comunes de dos clases en una clase base abstracta, sin embargo, tengo otro modelo que necesita hacer referencia a cualquiera de esas clases. No es posible hacer referencia a un ABC ya que en realidad no tiene una tabla de base de datos.

El siguiente ejemplo debería ilustrar mi problema:

class Answer(models.Model):
    ovramt = models.ForeignKey("Ovramt")
    question = models.ForeignKey("Question")
    answer = models.CharField(max_length=3, choices=(("yes","yes"),("no","no") ("NA","N/A"))
    likelihood = models.IntegerField(choices=LIKELY_CHOICES)
    consequence = models.IntegerField(choices=CONSEQUENCE_CHOICES)

    class Meta:
        abstract = True

class Answer_A(Answer):
    resident = models.ForeignKey("Resident")
    def __unicode__(self):
        return u"%s - %s - %s" %(self.ovramt.ssa.name, self.resident, self.question)    

class Answer_B(Answer):
    def __unicode__(self):
        return u"%s - %s" %(self.ovramt.ssa.name, self.question)    

class Answer_Risk(models.Model):
    answer = models.ForeignKey("Answer")
    risk = models.CharField(max_length=200)

    def __unicode__(self):
        return self.risk

Answer_A y Answer_B son ligeramente diferentes en que Answer_A también necesita una relación FK con otra tabla. Answer_B también puede requerir algunos atributos específicos más adelante. El problema TODAVÍA existiría si tuviera Answer_B ser la superclase, y tuviera una subclase Answer_A o la compusiera.

Un 'riesgo' es el mismo, ya sea Answer_A o Answer_B. También tengo otros modelos que necesitan hacer referencia a una 'Respuesta' independientemente de su subtipo. ¿Cómo se puede hacer esto? ¿Cómo puede hacer referencia a un tipo independientemente de su subtipo?

Actualizar:
Estaba tratando de evitar una operación de unión, pero no creo que pueda hacerlo. ¿Valdría la pena tener la referencia a 'Residente' en todas las 'Respuestas' y simplemente anularla cuando sea necesario? ¿O eso se considera una muy mala práctica?

Respuestas a la pregunta(2)

Su respuesta a la pregunta