2015-01-04 2 views
0

Название этого вопроса может быть конфликтовано. Я не знаю, какое название должно быть присвоено этой проблеме.Вложенный импорт моделей в django 1.7 и python 2.7

У меня есть две модели файлов ==> models.py в приложении а и models.py в приложении б models.py имеет в приложении class A models.py имеет class B в приложении б

Оба класса продлить django.db.models.Model ie эти классы делают таблицы базы данных

Я хочу import class A от models.py from app a, который импортирует class B из models.py в приложении b.

Я хочу сказать, что оба класса используют друг друга.

если я код так: models.py в приложении A ==>

from b.models import B 

models.py в приложении б ==>

from a.models import A 

тогда я получаю сообщение об ошибке импорта, B не определен.

Как я могу импортировать оба класса в оба файла?

+0

Вы добавили приложение B в свой ** settings.py **? – rnevius

+0

Да, все остальное верно. Я хочу знать об этом, что две модели могут взаимодействовать друг с другом одновременно. – user3884659

ответ

6

Вы можете создать внешний ключ для модели, не импортируя его. Вместо класса модели передайте строку с именем приложения и именем модели. См the docs for ForeignKey:

class B(models.Model): 

    a = models.ForeignKey('a.A') 

Если вы хотите получить доступ к такой модели где-то в коде затем импортировать его внутри функции:

class B(models.Model): 

    def some_method(self): 
     from a.models import A 
     ... 
0

Это вопрос циклическая зависимость скорее. Вы проверите Circular dependency in Python ответ.

Одним словом, вы должны либо попытаться изменить организацию класса, чтобы предотвратить это, либо использовать импорт внутри функций, чтобы избежать ошибок импорта.

Смежные вопросы