Произошла ошибка при цитировании класса, на который указывает Django ForeignKey - PullRequest
0 голосов
/ 14 июля 2011
'MODEL' has a relation with model MODEL.IN.APP, which has either not been installed or is abstract.

Эта ошибка возникает при переходе от явной ссылки к другой модели в другом приложении:

foo = models.ForeignKey(project.app.models.OtherModel)

к цитируемой версии того же самого (для удаления циклических ссылок)

foo = models.ForeignKey("project.app.models.OtherModel")

Это трогало меня три раза, и я гуглил тот же вопрос, заданный в другом месте (без правильного ответа).

1 Ответ

2 голосов
/ 14 июля 2011

ForeignKey Django принимает либо сам объект Model, либо строковое представление модели, специфичное для Django. Строка - это имя приложения и название модели, поэтому правильная форма:

foo = models.ForeignKey("app.OtherModels")

не

foo = models.ForeignKey("project.app.models.OtherModels")

Использование полного имени в кавычках приводит к довольно странному сообщению об ошибке в исходном вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...