Django импортные модели - PullRequest
1 голос
/ 24 июня 2011

ОК. Я работаю с Джанго уже несколько месяцев и столкнулся со странной проблемой. Чтобы настроить его, вот моя структура веб-приложения.

Основной проект Django называется cpm. У меня есть куча приложений django в папке cpm. В каждом приложении у меня есть свой файл models.py.

Теперь, когда я хочу создать / использовать модели из других приложений, я бы сделал что-то вроде:

from cpm.products.models import *

при условии, что приложение с именем products присутствовало. Недавно я начал получать сообщения об ошибках, типа cannot import XYZ from products. Итак, после долгих поисков я изменил строку:

from cpm.products.models import *

до

from products.models import *

Я только что отбросил часть cpm., и теперь она работает.

Может кто-нибудь сказать мне, почему это происходит? Похоже, что это происходит только на части моих приложений (у меня есть куча в рамках проекта CPM). Я хочу убедиться, что мой синтаксис точен, когда я продвигаюсь вперед.

Спасибо!

1 Ответ

5 голосов
/ 24 июня 2011

Корневой каталог проекта был удален из пути python где-то по пути, или вы удалили файл __init__.py из его корня.

Кстати, импорт * приведет к проблемам, особенно когда вы начнете добавлять множество приложений. Попробуйте сделать from products import models as prod_models. Затем выполните prod_models.MyModel там, где вам нужно сослаться на ваши модели.

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