Структура моего проекта django:
project
book (an app)
__init__.py
views.py
models.py
urls.py
...
api (an app)
__init__.py
problem.py
book (another app for REST API)
__init__.py
views.py
urls.py
...
Когда я пытаюсь «из book.models import *» в api/problem.py, django сказал «ImportError: No module named models». Я думаю, это потому, что он пытается импортировать «api/book/models.py», которого не существует. Как я могу импортировать модули из корневой папки? Спасибо.
import *
, это может привести к конфликтам. Импортирует только то, что вам нужно. Сначала убедитесь, что__init__
существует для каждой папки, которую вы собираетесь импортировать. Вам не нужно отдельное приложение дляapi
. Просто сделайтеapi.py
вbook
(и любое другое приложение, которое вы собираетесь сделать, для которого требуется общедоступный API. - person CppLearner   schedule 19.08.2012models
вы хотите импортировать? Первыйbook
's models.py илиapi/book/<models.py>
? Если последний случай, то да, вам определенно не хватает моделей. Но если вы не можете импортировать из первого случая, убедитесь, что__init__
есть, и попробуйте импортировать изproject.book.models import some_class
, поскольку вы заметили, что он пытается импортировать локальную версию книги. - person CppLearner   schedule 19.08.2012__init__.py
? Странно, чтоfrom project.book.models import some_class
не работает. - person CppLearner   schedule 20.08.2012