Импорт между двумя приложениями в проекте Django - PullRequest
2 голосов
/ 30 сентября 2010

В моем проекте django есть два приложения (app1 и app2).

Мне интересно, есть ли способ импортировать вещи между приложениями.

baseProject  
--app1
----models.py  
----etc..
--app2
----models.py
----etc..

IХотелось бы, находясь в app2, импортировать что-то из раздела моделей app1.Есть ли способ сделать это, или я планирую плохую архитектуру.

Ответы [ 2 ]

5 голосов
/ 30 сентября 2010

Вы определенно можете это сделать, просто импортируйте его как обычно.Многие приложения, связанные с аутентификацией / регистрацией, импортируют модели из приложения "django.contrib.auth", которое поставляется с Django.Вы можете импортировать любое приложение, независимо от того, написали вы его или нет.

Вам просто нужно убедиться, что приложения находятся на вашей PYTHONPATH, чтобы их можно было импортировать.

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

1 голос
/ 30 сентября 2010

То, что вы предлагаете, является хорошей и принятой практикой.Из app2 вы можете просто сделать: from app1.models import SomeModel.Например, вы, вероятно, привыкли импортировать модель User из приложения django.contrib.auth.Это часть предполагаемого преимущества повторного использования приложений django.

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