a set of models that use a nonabstract inherited through model a set of models that use a non abstract inherited through model
from django.db import models


class Person(models.Model):
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=20)
    friends = models.ManyToManyField("self")



class ThroughBase(models.Model):
    person = models.ForeignKey(Person, models.CASCADE)
    b = models.ForeignKey("B", models.CASCADE)


class Through(ThroughBase):
    extra = models.CharField(max_length=20)


class B(models.Model):
    people = models.ManyToManyField(Person, through=Through)