Я получил похожее сообщение об ошибке, но причина моей проблемы была другая, и, следовательно, исправление было другим. Моя проблема заключалась в том, что файлы, содержащие определения каждого класса, не "импортировали" другой класс .
Я получил следующую ошибку:
Необработанное исключение в потоке, запущенном связанным методом Command.inner_run объекта django.contrib.staticfiles.management.commands.runserver.Command по адресу 0x010E2170
Файл "C: \ ... \ lib \ site-packages \ django \ core \ management \ base.py", строка 284, в проверке
повышение CommandError («Одна или несколько моделей не прошли проверку: \ n% s»% error_text)
django.core.management.base.CommandError: Одна или несколько моделей не прошли проверку:
app_name.studio: у «instructors» есть отношение m2m с моделью Instructor, которая либо не установлена, либо является абстрактной.
У меня есть отношения ManyToMany, определенные между классами Studio и Instructor. Каждый класс определяется в отдельном файле в каталоге моделей (не в том же файле models.py)
В app_name / models / studio.py:
class Studio(models.Model):
instructors = models.ManyToManyField("Instructor", blank=True, null=True, db_table="app_name_instructor_studios")
В app_name / models / instructor.py:
class Instructor(models.Model):
studios = models.ManyToManyField("Studio", blank=True, null=True, db_table="app_name_instructor_studios")
РЕШЕНИЕ:
Я добавил отсутствующий оператор импорта в app_name / models / __ init.py __ файл, как описано в этом сообщении
from instructor import *
Еще один способ, который мне удалось решить - это явный импорт класса Instructor в app_name / models / studio.py (однако я предпочитаю самое первое решение):
from app_name.models.instructor import Instructor