Как получить доступ к модели Django вне проекта Django
Приведенная ниже проблема возникла после просмотра всех соответствующих вопросов, но, к сожалению, ни один из ответов не привел к решению в моем случае (похожая проблема, как: Как получить доступ к моделям Django вне Django? ).
(с Django версии: 4.1.1)
Имея приложение "simo" с соответствующей моделью, доступ к базе данных хорошо работает из оболочки Django, но при попытке получить доступ к ней извне Django как "scheduling.py", он просто не работает.
import os
import django
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
django.setup()
from django.db import models
from simo.models import Tasks
Я пытался выполнить свой скрипт python в любой папке:
- рядом с файлом manage.py,
- рядом с settings.py и
- рядом с models.py, но ни один из них не работает.
[mysite]
[mysite]
[simo]
[migrations]
views.py
models.py
urls.py
__init__.py
apps.py
tests.py
admin.py
settings.py
urls.py
__init__.py
wsgi.py
asgi.py
scheduling.py
__init__.py
db.sqlite3
manage.py
Полученная ошибка:
C:\...\python.exe C:/.../mysite/scheduling.py
Traceback (most recent call last):
File "C:\...\mysite\scheduling.py", line 5, in <module>
django.setup()
File "C:\...\lib\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\...\lib\site-packages\django\apps\registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "C:\...\lib\site-packages\django\apps\config.py", line 178, in create
mod = import_module(mod_path)
File "C:\...\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'simo'
Process finished with exit code 1
Может кто-нибудь подсказать, как решить эту проблему?
Попробуйте позвонить
from django.db import models
и from simo.models import Tasks
перед django.setup()
Вы можете создать пользовательские команды Django