Что-то, о чем я не упоминал, где-либо достаточно подробно описано, как правильно сформулировать строку внутри ForeignKey при ссылке на модель в другом приложении. Эта строка должна быть app_label.model_name
. И, что очень важно, app_label
- это не вся строка в INSTALLED_APPS, но только последний компонент . Итак, если ваш INSTALLED_APPS выглядит следующим образом:
INSTALLED_APPS = (
...
'path.to.app1',
'another.path.to.app2'
)
, то для включения ForeignKey в модель в app2 в модели app1 вы должны выполнить:
app2_themodel = ForeignKey('app2.TheModel')
Я провел довольно долгое время пытаясь решить круговую проблему импорта (так что я не мог просто from another.path.to.app2.models import TheModel
), прежде чем я наткнулся на это, google / SO не помогло (все примеры имели однокомпонентные пути к приложениям), поэтому, надеюсь, это поможет другим django новички.