Django - внешний ключ к ManyToMany (через) не работает с SystemCheckError

Используя следующие отношения:

class Author(models.Model):
    pass

class Book(models.Model):
    authors = models.ManyToManyField(to=Author)

class Contract(models.Model):
    work = models.ForeignKey(to=Book.authors.through, on_delete=models.CASCADE)

мы пытаемся получить внешний ключ, указывающий на модель through без его явного определения (см. также комментарий Daniel Roseman в Django using a ManytoMany as a Foreign Key )

Не получается SystemCheckError:

SystemCheckError: System check identified some issues:
ERRORS:
Contract.work: (fields.E300) Field defines a relation with model 'Book_authors', which is either not installed, or is abstract.

Book.authors.through - это модель, которая не является абстрактной.

Почему это больше не работает (django 3.2)?

Вернуться на верх